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// Set an authorization through constructor const caver = new CaverExtKAS(chainId, accessKeyId, secretAccessKey);
// Set an authorization through constructor CaverExtKAS caver = new CaverExtKAS(chain, accessKeyId, secretAccessKey);
-
caver.initKASAPI
로 인증 키 설정JavaScriptJava// Set an authorization through 'caver.initKASAPI' function const caver = new CaverExtKAS(); caver.initKASAPI(chainId, accessKeyId, secretAccessKey);
// 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
- Node API: https://node-api.klaytnapi.com
- Wallet API: https://wallet-api.klaytnapi.com
- Anchor API: https://anchor-api.klaytnapi.com
- Token History API: https://th-api.klaytnapi.com
- KIP-17 API: https://kip17-api.klaytnapi.com
- KIP-7 API: https://kip7-api.klaytnapi.com
- KIP-37 API: https://kip37-api.klaytnapi.com
// 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])
// 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를 사용하여 계정을 생성하는 방법입니다.
const CaverExtKAS = require("caver-js-ext-kas");
const caver = new CaverExtKAS(chainId, accessKeyId, secretAccessKey);
const account = await caver.kas.wallet.createAccount();
console.log(account);
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에 생성된 계정의 정보가 출력됩니다.
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
}
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에 관한 문의는 개발자 포럼을 방문해 도움 받으십시오.