From 9d40030bd31e9f000f6e8290fb6f3cd6832fb433 Mon Sep 17 00:00:00 2001 From: KANG-YEONWOOK Date: Sat, 27 Apr 2024 22:26:50 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=BC=EC=A0=9C=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.ts | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/index.ts b/index.ts index 1e786e9..d61f83e 100644 --- a/index.ts +++ b/index.ts @@ -1,4 +1,5 @@ import * as algokit from '@algorandfoundation/algokit-utils'; +import { AlgoAmount } from '@algorandfoundation/algokit-utils/types/amount'; /* 블록체인 밸리 X 알고랜드 개발자 부트캠프 코딩 과제 #1 @@ -28,9 +29,9 @@ async function main() { */ // 문제 1 시작 - const alice = "*** 여기에 코드 작성 ***" - const bob = "*** 여기에 코드 작성 ***" - const chris = "*** 여기에 코드 작성 ***" + const alice = algorand.account.random(); + const bob = algorand.account.random(); + const chris = algorand.account.random(); // 문제 1 끝 const accounts = [alice, bob, chris]; @@ -47,7 +48,11 @@ async function main() { const dispenser = await algorand.account.dispenser(); for (const account of accounts) { // 문제 2 시작 - "*** 여기에 코드 작성 ***" + await algorand.send.payment({ + amount: algokit.algos(120), + receiver: account.addr, + sender: dispenser.addr, + }) // 문제 2 끝 } @@ -66,7 +71,13 @@ async function main() { - assetCreateParam: https://github.com/algorandfoundation/algokit-utils-ts/blob/main/docs/code/modules/types_composer.md#assetcreateparams */ // 문제 3 시작 - const createResult = "*** 여기에 코드 작성 ***" + const createResult = await algorand.send.assetCreate({ + sender: bob.addr, + assetName: "Apple Vision Pro", + unitName: "AVP", + decimals: 0, + total: BigInt(1), + }); // 문제 3 끝 // Get assetIndex from transaction @@ -83,7 +94,11 @@ async function main() { */ // 문제 4 시작 - "*** 여기에 코드 작성 ***" + await algorand.send.assetOptIn({ + assetId: assetId, + sender: alice.addr + }) + // 문제 4 끝 /* @@ -121,14 +136,23 @@ async function main() { // 밥이 앨리스에게 애플 비전 프로 ASA를 송금하는 트랜잭션 객체 생성 // 문제 5 시작 - const bobSendAssetTxnParam = "*** 여기에 코드 작성 ***" + const bobSendAssetTxnParam = { + assetId: assetId, + amount: BigInt(1), + receiver: alice.addr, + sender: bob.addr + } // 앨리스가 크리스에게 110 ALGO를 송금하는 트랜잭션 객체 생성 - const alicePayTxnParam = "*** 여기에 코드 작성 ***" + const alicePayTxnParam = { + sender: alice.addr, + receiver: chris.addr, + amount: algokit.algos(110), + } // 3개의 트랜잭션을 atomic transaction composer로 묶어서 전송 - const atomicGroup = "*** 여기에 코드 작성 ***" - const result = "*** 여기에 코드 작성 ***" + const atomicGroup = algorand.newGroup() + const result = await atomicGroup.addPayment(chrisPayTxnParam).addAssetTransfer(bobSendAssetTxnParam).addPayment(alicePayTxnParam).execute() // 문제 5 끝 console.log("아래 트랜잭션 ID를 가진 3개의 트랜잭션이 어토믹 트랜잭션으로 동시 체결됬습니다!", result.txIds)