두번째 알고랜드 개발자 부트캠프에 오신 블록체인 밸리 학회원분들 반갑습니다~!
세부 일정:
- 알고랜드 스마트 계약에 관한 모든것 알아보기 (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 템플렛을 따라 출력된 값을 보여주는 터미널의 스크린샷을 첨부해주세요.