본문 바로가기
블록체인 기술사업 교육/JavaScript

블록체인 기술사업 교육 10일차 (JavaScript)

by Mecodata 2023. 4. 14.

async ~ await

- callback 함수처럼 비동기화를 동기화시키는 방법 중 하나

- 함수명 앞에 async를 입력함으로써 적용

- async의 리턴값은 항상 프로미스 객체
- await = 프로미스 객체의 수행상태가 완벽히 종료될 때까지 대기하다 그 결과를 반환하는 키워드

(await은 프로미스 객체 앞에 입력함) 

- await는 async 내부에서만 사용 가능

 

JavaScript로 KAS(Klaytn API Service) 이용

- npm install caver-js-ext-kas로 작업 폴더 위치에서 패키지 사전 설치

- KAS를 이용하면 기존 방식보다 Klaytn을 더 쉽게 다룰 수 있음

const CaverExtKAS = require("caver-js-ext-kas");

const caver = new CaverExtKAS();

const accessKeyId = "";
const secretAccessKey = "";
const chainId = 1001;

// KAS API 초기화
caver.initKASAPI(chainId, accessKeyId, secretAccessKey);

const keyringContainer = new caver.keyringContainer();

// private key를 이용해 keyring 생성
const keyring = keyringContainer.keyring.createFromPrivateKey(
  ""
);
console.log(key.address);
keyringContainer.add(keyring);

// Token 생성 함수 => klaytnscope에서 확인 가능
async function createToken() {
  const kip7 = await caver.kct.kip7.deploy(
    {
      name: "", // 토큰명
      symbol: "", // 토큰 심볼
      decimals: , // 소숫점 자리수
      initialSupply: "", // 초기 발행량
    },
    keyring.address,
    keyringContainer
  );
  console.log(kip7);
}

// Token 전송 함수
async function transferToken(address, amount) {
  const didToken = await new caver.kct.kip7(
    "지갑 주소"
  );
  await didToken.setWallet(keyringContainer);
  const receipt = await didToken.transfer(address, amount, {
    from: keyring.address,
  });
  console.log(receipt);
}

//createToken();
//transferToken("토큰을 받을 지갑 주소", 토큰수);

// 지갑에서 Token 조회
async function getBalance(address) {
  const didToken = await new caver.kct.kip7(
    "지갑 주소"
  );
  const balance = await didToken.balanceOf(address);
  console.log(balance);
}

// getBalance("조회할 지갑 주소");

// 지갑 생성
async function createWallet() {
  const wallet = await caver.kas.wallet.createAccount();
  console.log(wallet);
}

//createWallet();

댓글