SDK를 이용해 API 호출하기

KAS SDK로 KAS API를 호출하는 방법을 안내합니다. Klaytn 계정 생성 후 계정 정보 조회 예제를 살펴보세요.

인증 키 설정

KAS API를 실행하려면 기본 계정을 생성하고 인증 값을 설정해야 합니다. KAS Console에서 직접 계정을 생성할 수 있고, KAS SDK인 Caver-js-ext-kas 또는 Caver-java-ext-kas를 이용해 생성할 수도 있습니다. 본 페이지에서는 KAS SDK로 호출하는 방법을 안내합니다.

먼저 사용할 "chain id" 와 "인증 키"를 설정합니다. KAS API 서비스를 사용하기 위해서 초기화하는 방법은 아래와 같습니다. 생성자에 chainId, accessKeyId 그리고 secretAccessKey를 전달하면 내부적으로 caver.initKASAPI 함수를 호출하고, 해당 함수에서는 Klaytn Node API, Wallet API, Token History API, Anchor API, KIP-17 API, KIP-7 API, 그리고 KIP-37 API에서 사용되는 인증 키를 한 번에 초기화합니다.

  • constructor 로 인증 키 설정
    JavaScriptJava
    Copy
    Copied
    // Set an authorization through constructor
    const caver = new CaverExtKAS(chainId, accessKeyId, secretAccessKey);
    Copy
    Copied
    // Set an authorization through constructor
    CaverExtKAS caver = new CaverExtKAS(chain, accessKeyId, secretAccessKey);
  • caver.initKASAPI 로 인증 키 설정
    JavaScriptJava
    Copy
    Copied
    // Set an authorization through 'caver.initKASAPI' function
    const caver = new CaverExtKAS();
    caver.initKASAPI(chainId, accessKeyId, secretAccessKey);
    Copy
    Copied
    // Set an authorization through 'caver.initKASAPI' function
    CaverExtKAS caver = new CaverExtKAS();
    caver.initKASAPI(chainId, accessKeyId, secretAccessKey);

KAS API 서비스 별로 초기화하는 방법은 아래와 같습니다. 마지막 파라미터에 엔드포인트 URL을 선택적으로 전달할 수 있으며, 따로 URL이 전달되지 않으면 아래와 같이 KAS Production URL이 기본값으로 세팅됩니다.

KAS Production URL

JavaScriptJava
Copy
Copied
// Node API 초기 세팅
caver.initNodeAPI(chainId, accessKeyId, secretAccessKey [, useHttp] [, url])

// Wallet API 초기 세팅
caver.initWalletAPI(chainId, accessKeyId, secretAccessKey [, url])

// TokenHistory API 초기 세팅
caver.initTokenHistoryAPI(chainId, accessKeyId, secretAccessKey [, url])

// Anchor API 초기 세팅
caver.initAnchorAPI(chainId, accessKeyId, secretAccessKey [, url])

// KIP-17 API 초기 세팅
caver.initKIP17API(chainId, accessKeyId, secretAccessKey [, url])

// KIP-7 API 초기 세팅
caver.initKIP7API(chainId, accessKeyId, secretAccessKey [, url])

// KIP-37 API 초기 세팅
caver.initKIP37API(chainId, accessKeyId, secretAccessKey [, url])
Copy
Copied
// Node API 초기 세팅
caver.initNodeAPI(chainId, accessKeyId, secretAccessKey [, url])

// Wallet API 초기 세팅
caver.initWalletAPI(chainId, accessKeyId, secretAccessKey [, url])

// TokenHistory API 초기 세팅
caver.initTokenHistoryAPI(chainId, accessKeyId, secretAccessKey [, url])

// Anchor API 초기 세팅
caver.initAnchorAPI(chainId, accessKeyId, secretAccessKey [, url])

// KIP-17 API 초기 세팅
caver.initKIP17API(chainId, accessKeyId, secretAccessKey [, url])

// KIP-7 API 초기 세팅
caver.initKIP7API(chainId, accessKeyId, secretAccessKey [, url])

// KIP-37 API 초기 세팅
caver.initKIP37API(chainId, accessKeyId, secretAccessKey [, url])

계정 생성 및 조회

KAS의 Wallet API를 사용하여 계정을 생성하는 방법입니다.

JavaScriptJava
Copy
Copied
const CaverExtKAS = require("caver-js-ext-kas");
const caver = new CaverExtKAS(chainId, accessKeyId, secretAccessKey);

const account = await caver.kas.wallet.createAccount();
console.log(account);
Copy
Copied
import xyz.groundx.caver_ext_kas.CaverExtKAS;
import xyz.groundx.caver_ext_kas.rest_client.io.swagger.client.ApiException;
import xyz.groundx.caver_ext_kas.rest_client.io.swagger.client.api.wallet.model.Account;

public class HelloKAS {
    public static void createAccount() throws ApiException {
        CaverExtKAS caver = new CaverExtKAS();
        caver.initKASAPI(chainId, accessKeyId, secretAccessKey);

        Account account = caver.kas.wallet.createAccount();
        System.out.println(account);
    }

    public static void main(String[] args) throws ApiException {
        createAccount();
    }
}

위의 코드를 실행하면 아래와 같이 KAS에 생성된 계정의 정보가 출력됩니다.

JavaScriptJava
Copy
Copied
Account {
  address: '0x4d6de1Fe6a281306C54AD81b79a0c137b13872DC',
  chainId: 1001,
  createdAt: 1602124416,
  keyId: 'krn:1001:wallet:9c42dff5-d317-4abd-a7ab-576aad12ea07:account-pool:default:0x975fa77efbde347b0c471f0f29ba73c1281521f69485d650c8c10125e37b57fc',
  krn: 'krn:1001:wallet:9c42dff5-d317-4abd-a7ab-576aad12ea07:account-pool:default',
  publicKey: '0x0433f1b15d33e821155988408e949d21d5bd0d053d9f2ed90f3df57e96f0ce7a766ba36617f43f2ad1e0f3caca5bdb431a88c51c1bdaab8dc781589b1658e646f1',
  updatedAt: 1602124416
}
Copy
Copied
class Account {
    address: 0x0BA67C887F922AF3d0D781dD940c6d0C80D395DE
    chainId: 1001
    createdAt: 1602550121
    keyId: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool:0xbedefad10db4df3488aaf1669b9164549c1aebe7c326f4b19ba6c6ce0f330fa5
    krn: krn:1001:wallet:d5c346f5-bb80-4f45-9093-57e25205cdc8:account-pool:pool
    publicKey: 0x041d56cbe46915854600c9d3c4ef614906f27473abe948cf587d990dcbce030d5989f4458bc470e44b2916d75194729102bb60e1e6a27c01030de84208a13232c2
    updatedAt: 1602550121
    multiSigKeys: null
    threshold: null
}

이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.