๋๋ฒ์งธ ์๊ณ ๋๋ ๊ฐ๋ฐ์ ๋ถํธ์บ ํ์ ์ค์ ๋ธ๋ก์ฒด์ธ ๋ฐธ๋ฆฌ ํํ์๋ถ๋ค ๋ฐ๊ฐ์ต๋๋ค~!
์ธ๋ถ ์ผ์ :
- ์๊ณ ๋๋ ์ค๋งํธ ๊ณ์ฝ์ ๊ดํ ๋ชจ๋ ๊ฒ ์์๋ณด๊ธฐ (30๋ถ)
- ์ฝ๋ ๋ฐ๋ชจ (30๋ถ)
- ์ฝ๋ฉ ์ธ์ (2์๊ฐ)
์๊ณ ๋๋ ์ค๋งํธ ๊ณ์ฝ์ ๊ดํ ๋ชจ๋ ๊ฒ ๐ PPT ์ฌ๋ผ์ด๋
์ด๋ฒ ์ฝ๋ฉ ์ธ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋์งํธ ๋ง์ผํ๋ ์ด์ค ์ค๋งํธ ๊ณ์ฝ์ ์๊ณ ๋๋ ํ์ด์ฌ์ ์ฌ์ฉํด์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค.
DigitalMarketplace ์ฑ ์ค๋ช
์ด ๊ฐ๋จํ DigitalMarketplace ์ฑ์ ์์ฏ(ASA)๋ฅผ ํ๋งคํ ์ ์๋ ์ค๋งํธ ๊ณ์ฝ์ ๋๋ค.
์ด ์ฑ์ lifecycle์ ์๋์ ๊ฐ์ต๋๋ค.
- ์ฑ ์์ฑ์(ํ๋งค์)๊ฐ ์ฑ์ ์์ฑํฉ๋๋ค.
- ์ฑ ์์ฑ์(ํ๋งค์)๊ฐ ์ฑ์ ๋ถํธ์คํธ๋ฉ ๋ฉ์๋๋ฅผ ํธ์ถํด ๋ถํธ์คํธ๋ฉํฉ๋๋ค. ์ด๋ ์ฑ์ ํ๋งคํ ์์ (ASA)์ ์ค์ ํ๊ณ , ๋จ๊ฐ๋ฅผ ์ค์ ํ๊ณ , ์ฑ ๊ณ์ ์ด ์ตํธ์ธ์ ํฉ๋๋ค.
- ๊ตฌ๋งค์๊ฐ ์ฑ์์ ํ๋งคํ๋ ์์ (ASA)์ buy๋ฉ์๋๋ฅผ ํธ์ถํด ๊ตฌ๋งคํฉ๋๋ค.
- ์ฑ ์์ฑ์(ํ๋งค์)๊ฐ withdraw_and_delete ๋ฉ์๋๋ฅผ ํธ์ถํด ์ฑ ๊ณ์ ์ ๋จ์์๋ ์์ (ASA)์ ์ฑ ๊ณ์ ์ผ๋ก ์ ์กํ๊ณ , ๋ชจ๋ ์์ต๊ธ์ ํ๋งค์ ๊ณ์ ์ผ๋ก ์ก๊ธํ ๋ค, ์ค๋งํธ ๊ณ์ฝ์ ์ญ์ ํฉ๋๋ค. ๋ฒ์ธ: set_price ๋ฉ์๋๋ฅผ ํตํด ํ๋งคํ ์์ (ASA)์ ๋จ๊ฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ฝ๋ฉ ๊ณผ์ ๋ ์ด 5๋ฌธ์ ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ๊ฐ ๋ฌธ์ ์ "*** ์ฌ๊ธฐ์ ์ฝ๋ ์์ฑ ***" ๋ถ๋ถ์ ์ฝ๋๋ฅผ ์์ฑํ์๋ฉด ๋ฉ๋๋ค. ๋ฐ์ ์ฒดํฌํฌ์ธํธ๋ค์ ๋ฐ๋ผ์ ์งํํด์ฃผ์ธ์!
- AlgoKit ์ค์น.
- Docker ์ค์น. It is used to run a local Algorand network for development.
- Node.JS / npm ์ค์น
- ์ด ๋ฆฌํฌ๋ฅผ fork ํด์ฃผ์ธ์.
- Forkํ ๋ฆฌํฌ๋ฅผ git clone ํด์ฃผ์ธ์.
cd [DIRECTORY_OF_YOUR_CHOICE]
git clone [FORKED_REPO_URL]
- VSCode์์ ์ด ํด๋๋ฅผ ์ด๋ํด์ฃผ์ธ์.
- ์ด๋ ํ
blockchain-valley-session-2.code-workspace
ํ์ผ์ ์ด๋ ํopen workspace
๋ฒํผ์ ๋๋ฌ workspace ๋ชจ๋๋ฅผ ์คํ์์ผ์ฃผ์ธ์. - ์ด์ VSCode ํฐ๋ฏธ๋์ด 3๊ฐ๊ฐ ์๋ ์์ฑ๋ ๊ฒ ์
๋๋ค:
ROOT
blockchain-valley-2
coding-assignment
. ์ด ์คROOT
VSCode ํฐ๋ฏธ๋์์algokit project bootstrap all
์ปค๋งจ๋๋ฅผ ์คํ์์ผ dependencies๋ค์ ์ค์นํด์ฃผ์ธ์. ์ด๋ฌ๋ฉด ๋ชจ๋ ํ๋ก์ ํธ ํด๋์ dependencies๋ค์ด ์ค์น๋ฉ๋๋ค.
algokit project bootstrap all
- ์ด์
coding-assignment
ํฐ๋ฏธ๋์ ์ ํํ ๋คpoetry shell
์ปค๋งจ๋๋ฅผ ์คํํด ํ์ด์ฌ virtual environment๋ฅผ ํ์ฑํ ์์ผ์ฃผ์ธ์.- ํ์ด์ฌ virtual environment๋ฅผ ๋นํ์ฑํ ์ํฌ๋๋
exit
์ปค๋งจ๋๋ฅผ ์คํํ์๋ฉด ๋ฉ๋๋ค.
- ํ์ด์ฌ virtual environment๋ฅผ ๋นํ์ฑํ ์ํฌ๋๋
๋ฆฌํฌ fork, clone ํํ ๋ฆฌ์ผ: https://github.com/algorand-fix-the-bug-campaign/challenge-1/assets/52557585/acde8053-a8dd-4f53-8bad-45de1068bfda
- ๋์ปค ๋ฐ์คํฌํ์ ์คํํ ๋ค ํฐ๋ฏธ๋์์
algokit localnet start
์ปค๋งจ๋๋ก ๋ก์ปฌ ๋คํธ์ํฌ๋ฅผ ์คํ์์ผ์ฃผ์ธ์.๋ ์์ธํ ์๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํด์ฃผ์ธ์!. smart_contracts/digital_marketplace/contract.py
ํ์ผ๋ก ๊ฐ์ ์ ์ค๋ช ์ ์ฝ์ผ์๊ณ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ์ธ์!- ๋ฌธ์ ๋ฅผ ๋ค ํด๊ฒฐํ ๋ค ํฐ๋ฏธ๋์์
algokit project run build
์ปค๋งจ๋๋ฅผ ์คํํด ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผ ํ์๊ณalgokit project deploy localnet
์ปค๋งจ๋๋ฅผ ์คํํดsmart_contracts/digital_marketplace/deploy-config.ts
ํ์ผ์ ์คํํ์ธ์! ์คํ ํ ๋ค์๊ณผ ๊ฐ์ ์ฝ์ ๊ฐ์ด ์ถ๋ ฅ๋๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ ๊ฒ๋๋ค!
smart_contracts/digital_marketplace/deploy-config.ts
ํ์ผ ์์ ๋ณด๋ฉด btsScenario ํจ์๊ฐ ์ฃผ์์ผ๋ก comment out ๋์ด์์ต๋๋ค. ์ฃผ์์ ํด์ ํ๊ณ ์ค๋ช ์ ๋ฐ๋ผ ์ด 7๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ธ์!- ๋ฌธ์ ๋ฅผ ๋ค ํด๊ฒฐํ ๋ค ํฐ๋ฏธ๋์์
algokit project deploy localnet
์ปค๋งจ๋๋ฅผ ์คํํดsmart_contracts/digital_marketplace/deploy-config.ts
ํ์ผ์ ์คํํ์ธ์! ์คํ ํ ๋ค์๊ณผ ๊ฐ์ ์ฝ์ ๊ฐ์ด ์ถ๋ ฅ๋๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ณด๋์ค ๊ณผ์ ๊น์ง ํด๊ฒฐํ์ ๊ฒ๋๋ค!
- ์ฑ๊ณต์ ์ผ๋ก ๋ค์ฏ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ํ ๋ณธ์ธ์ด forkํ ๊นํ ๋ฆฌํฌ๋ก ์ฝ๋๋ฅผ ํธ์ฌํด์ฃผ์ธ์. ๊ทธ๋ฐ ๋ค์ ์๋์ ๋ฆฌํฌ๋ก Pull request๋ฅผ ํด์ฃผ์ธ์.
- Pull Request ํ ํ๋ ์ ๋ฐ๋ผ ์ถ๋ ฅ๋ ๊ฐ์ ๋ณด์ฌ์ฃผ๋ ํฐ๋ฏธ๋์ ์คํฌ๋ฆฐ์ท์ ์ฒจ๋ถํด์ฃผ์ธ์.