October 13

Гайд по виконанню четвертого завдання в проекті Canton

Крипто-подорожі з Дмитром - канал про ретродропи, тестнети, блокчейни, скрипти, NFT, криптобіржі, коротше, про все цікаве зі світу криптовалюти. Впевнений, тобі буде цікаво та корисно.
Чат каналу - ласкаво прошу, спілкуємось, ділимося новими активностями, допомагаємо один одному.

Привіт всім.

Отже, сьогодні виконуємо четверте завдання для проекту Canton, в якого 400 лямів інвесту. Перше, друге і третє я розписав в своєму ТГ каналі, можете ознайомитись:
Перше
Друге

Третє

Посилання на сторінку з завданням:
https://earn.stackup.dev/campaigns/unlocking-canton-with-daml-unifying-traditional-and-crypto-markets-on-chain/quests/quest-4-your-first-smart-contract-on-canton

Результатом виконання завдання має бути скрін, який ви бачите зверху. Погнали?

Це завдання можна виконати на Віндовсі (напевно, навіть простіше це зробити саме на Віндовсі, без сервера). Хоча кому як.

Для початку в вас мають бути встановлені:

Java - https://adoptium.net/temurin/releases/?version=11

Daml - https://docs.daml.com/getting-started/installation.html#windows

VS Code - https://code.visualstudio.com/

Створюєте будь де на компі окрему папку. Відкриваєте термінал, переходите в цю папку і створюєте проект:

daml new canton-quest4
cd canton-quest4

Запускаєте Сендбокс:

daml start

Якщо все вірно, то буде багато тексту, як на скріні. Залишаєте термінал відкритим

Відкриваєте VS Code, переходите в папку з проектом.

Створюєте файл, наприклад, Token.daml. В ньому пишете:

module Token where
template Token
with
owner : Party
where
signatory owner

Створюєте ще один файл TestScript.daml, в ньому пишете:

module TestScript where
import Daml.Script
import Token -- Імпортуємо шаблон Token
import DA.Assert
token_test_2 : Script ()
token_test_2 = script do
alice <- allocateParty "Alice"
bob <- allocateParty "Bob"
submitMustFail alice do
createCmd Token with owner = bob
submitMustFail bob do
createCmd Token with owner = alice
submit alice do
createCmd Token with owner = alice
submit bob do
createCmd Token with owner = bob
pure ()
-- Сценарій 2: Тестування архівації контракту
token_archive_exercise : Script ()
token_archive_exercise = script do
alice <- allocateParty "Alice"
alice_token_cid <- submit alice do
createCmd Token with owner = alice
-- 2. Заархівувати контракт (буде відображено як перекреслений)
submit alice do
archiveCmd alice_token_cid
pure ()

Зберігаєте обидва файли.

В термінал VC Code компілюєте проект:

daml build

Якщо все ок, то компіляція пройде успішно:

Тепер саме цікаве, спробую пояснити по простому:

Треба в самому коді натиснути на "Script result" і вам справа в новому вікні змоделюється результат роботи скрипта:

Для того, щоб виконати завдання, вам потрібен скрін з двома результатами на одному екрані, тому одне з вікон з результатом (те, де Сценарій 2 і не забудьте поставити пташечку "Show archived") тягніть мишкою вниз, поки не покаже приблизне його розташування нижче першого результату. Тоді 2 вікна розташуються одне під одним і можна буде зробити скрін.