Skip to content

Commit 0079d1f

Browse files
committed
instruction update
1 parent 1ab80c4 commit 0079d1f

File tree

2 files changed

+17
-11
lines changed
  • projects
    • orakle-nft-marketplace-app-contracts/smart_contracts/nft_marketplace
    • orakle-nft-marketplace-app-frontend/src

2 files changed

+17
-11
lines changed

projects/orakle-nft-marketplace-app-contracts/smart_contracts/nft_marketplace/contract.py

+16-10
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,25 @@ class NftMarketplace(arc4.ARC4Contract):
2323
NftMarketplace 앱의 상태(state)를 정의하고 초기값을 설정하세요.
2424
2525
NftMarketplace 앱은 세개의 상태를 가지고 있습니다.
26-
1. asset_id: 판매할 에셋(ASA)의 아이디; UInt64타입을 가진 글로벌 상태(Global State) 초기값은 0으로 설정해주세요.
27-
2. unitary_price: 판매할 에셋(ASA)의 가격. UInt64타입을 가진 글로벌 상태(Global State) 초기값은 0으로 설정해주세요.
28-
3. bootstrapped: 앱에서 에셋을 판매할 준비가 되었는지 체크하는 bool 타입의 글로벌 상태(Global State). 초기값은 False로 설정해주세요.
29-
bootstrap 메서드가 실행되면 True로 변경됩니다.
26+
1. asset_id: 판매할 에셋(ASA)의 아이디; UInt64타입을 가진 글로벌 상태(Global State)
27+
- 초기값은 0으로 설정해주세요.
28+
2. unitary_price: 판매할 에셋(ASA)의 가격. UInt64타입을 가진 글로벌 상태(Global State)
29+
- 초기값은 0으로 설정해주세요.
30+
3. bootstrapped: 앱에서 에셋을 판매할 준비가 되었는지 체크하는 bool 타입의 글로벌 상태(Global State). bootstrap 메서드가 실행되면 True로 변경됩니다.
31+
- 초기값은 False로 설정해주세요.
3032
3133
재밌는 팩트!
3234
AVM은 Bytes 타입과 UInt64 타입만 지원합니다. 그래서 다른 타입을 사용하고 싶으면 보통 arc4타입을 사용합니다. 하지만
3335
Algorand Python에서는 bool, string 타입은 파이썬 코드와 동일하게 사용할 수 있습니다. 예를 들어 bool 타입은 True,
3436
False로 표현하면 되고, string 타입은 "Hello, World!"와 같이 표현하면 됩니다. Algorand Python에서 데이터 타입을
3537
사용하는 방법은 아래 링크를 참고해주세요.
36-
- arc4 타입: https://algorandfoundation.github.io/puya/lg-types.html#types
38+
- Python Built in 타입: https://algorandfoundation.github.io/puya/lg-types.html#python-built-in-types
3739
3840
팁!
39-
- Global State를 정의할때 simplifed 버전으로 정의하면 간결한 코드로 상태를 정의하고 초기값을 설정할 수 있습니다. 자세한 사항은 아래 힌트 1을 참고해주세요.
41+
- Global State를 정의할때 simplifed 버전으로 정의하면 간결한 코드로 상태를 정의하고 초기값을 설정할 수 있습니다.
42+
자세한 사항은 아래 힌트 1을 참고해주세요.
4043
41-
힌트 1 - 글로벌 상태: https://algorandfoundation.github.io/puya/lg-storage.html#global-storage
44+
힌트 1 - 글로벌 상태 설정 방법: https://algorandfoundation.github.io/puya/lg-storage.html#global-storage
4245
힌트 2 - 코드 예시: https://github.com/algorandfoundation/puya/blob/11843f6bc4bb6e4c56ac53e3980f74df69d07397/examples/global_state/contract.py#L5
4346
"""
4447

@@ -59,15 +62,17 @@ def __init__(self) -> None:
5962
함수 인수 설명:
6063
- asset: 판매할 에셋(ASA)의 정보를 담고 있는 Asset 타입의 인수입니다.
6164
- unitary_price: 판매할 에셋(ASA)의 단가를 나타내는 UInt64 타입의 인수입니다.
62-
- mbr_pay: 앱 계정으로 어토믹 그룹에 묶여 동시다발적으로 보내지는 payment 트랜잭션입니다. 이 트랜잭션은 앱 배포자가 앱 계정의 미니멈 밸런스를 채우기 위한 트랜잭션입니다.
65+
- mbr_pay: 앱 계정으로 어토믹 그룹에 묶여 동시다발적으로 보내지는 payment 트랜잭션입니다. 이 트랜잭션은 앱 배포자가
66+
앱 계정의 미니멈 밸런스를 채우기 위한 트랜잭션입니다.
6367
6468
# 1단계: assert로 bootstrap 호출 조건을 체크하세요.
6569
- 메서드 호출자 (Txn.sender)가 앱의 생성자(Global.creator_address)인지 체크하세요.
6670
- bootstrapped 글로벌 상태가 False인지 체크하세요.
6771
- mbr_pay 트랜잭션을 받는 계정이 앱 계정인지 체크하세요.
6872
- mbr_pay의 알고 송금량(amount)이 앱 계정의 미니멈 밸런스(0.1 알고)와 판매할 ASA에 옵트인하기
6973
위한 미니멈 밸런스(0.1 알고)의 합과 같은지 체크해야합니다.
70-
-> 팁: Global이라는 AVM opcode를 통해 min_balance, asset_opt_in_min_balance와 같은 여러 정보를 열람할 수 있습니다. 자세한 사항은 아래 힌트 1을 참고해주세요.
74+
-> 팁: Global AVM opcode는 min_balance, asset_opt_in_min_balance와 같은 여러 스마트 계약의
75+
전역 정보를 열람할 수 있습니다. 자세한 사항은 아래 힌트 1을 참고해주세요.
7176
7277
# 2단계: bootstrap 메서드는 아래 기능들을 수행합니다.
7378
1. asset_id 글로벌 상태를 인수로 들어온 판매할 ASA 아이디로 업데이트합니다.
@@ -77,7 +82,8 @@ def __init__(self) -> None:
7782
트랜잭션을 보내는 것이기 때문에 Inner Transaction을 사용해야합니다. 자세한 사항은 힌트
7883
2를 참고해주세요. 에셋에 옵트인하는 방법은 assetTransfer를 보낼때 0개의 에셋을 본인 계정으로
7984
보내면 됩니다. 즉, 여기서는 앱 계정이 자기 자신에게 0개의 에셋을 보내면 됩니다.
80-
-> 힌트3에 나와있는 AssetTransfer 인수들 중 필수로 설정해야하는것들은 xfer_asset(보낼 에셋의 아이디), asset_receiver(받는 계정), asset_amount(에셋 송금량)입니다.
85+
-> 힌트3에 나와있는 AssetTransfer 인수들 중 필수로 설정해야하는것들은 xfer_asset(보낼 에셋의 아이디),
86+
asset_receiver(받는 계정), asset_amount(에셋 송금량)입니다.
8187
8288
힌트 1 - Global Opcode: https://algorandfoundation.github.io/puya/api-algopy.html#algopy.Global
8389
힌트 2 - How to Inner Transaction: https://algorandfoundation.github.io/puya/lg-transactions.html#inner-transactions

projects/orakle-nft-marketplace-app-frontend/src/methods.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export function buy(
133133
여기서 buyerTxn은 buy 메서드의 인수로 들어가기 때문에 자동으로 어토믹 그룹에 포함됩니다. 따라서 assetOptInTxn만 어토믹 그룹에 추가해주시면 됩니다.
134134
어토믹그룹을 형성하고 execute하는것을 까먹지 마세요!
135135
136-
힌트1: app client로 어토믹 그룹을 형성, 트랜잭션 추가, 제출하는법: https://github.com/algorandfoundation/algokit-client-generator-ts/blob/main/docs/usage.md#using-the-fluent-composer
136+
힌트1: fluent Atomic Composer로 어토믹 그룹을 형성, 트랜잭션 추가, 제출하는법: https://github.com/algorandfoundation/algokit-client-generator-ts/blob/main/docs/usage.md#using-the-fluent-composer:~:text=Using%20the%20fluent%20composer
137137
*/
138138

139139
const buyerTxn = await algorand.transactions.payment({

0 commit comments

Comments
 (0)