[KAS] Getting Started

박세연·2020년 11월 12일

Klaytn API Service

목록 보기
2/3

KAS 가입, 인증, 권한, SDK 설치

회원가입 -> 로그인 -> Dashboard가 뜬다.

API 인증키 생성

security -> Credential -> Access Key 생성
여기서 생성된 secret AccessKey와 Authorization은 최초 생성 시 한번만 확인가능
API 인증키로 모든 KAS 서비스를 사용하고, Wallet API를 호출해 만든 Klaytn 계정에 대한 모든 권한을 소유함.

SDK 설치

클레이튼 계정 생성

계정 유형

  • 계정(Account): 클레이튼에 트랜잭션을 전송하는 주체
  • 수수료 대납 계정(FeePayerAccount): 클레이튼에 트랜잭션을 전송할 때, 트랜잭션을 보내는 계정(일반 계정) 대신 트랜잭션 전송 수수료를 납부하는 주체
  • 오퍼레이터(Operator): 서비스 체인 데이터를 메인 체인에 앵커링하는 주체

계정 만들기

계정 저장소 생성

기본 계정 저장소: KAS API 호출 시 사용할 계정 저장소를 별도로 지정하지 않을 때 기본으로 사용하는 계정 저장소
KAS 콘솔 -> Service -> Wallet -> Account Pools 메뉴

계정 생성

API 호출

const CaverExtKAS = require('caver-js-ext-kas')
const caver = new CaverExtKAS()

caver.initNodeAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)
caver.initTokenHistoryAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)
caver.initAnchorAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)
caver.initWalletAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)

async function testFunction() {
    const result = await caver.kas.wallet.createAccount()
    console.log(result)
}
testFunction()

API 응답

수수료 대납 계정 만들기

수수료 대납 계정 저장소 생성

KAS 콘솔 -> Service -> Wallet -> Fee Payer Pools -> "생성"

수수료 대납 계정 생성

계정을 만들고싶은 저장소를 클릭해서 계정을 생성한다.

오퍼레이터 만들기

API 호출

클레이튼 계정 조회

const CaverExtKAS = require('caver-js-ext-kas')
const caver = new CaverExtKAS()

caver.initNodeAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)
caver.initTokenHistoryAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)
caver.initAnchorAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)
caver.initWalletAPI(1001, `{your_accessKeyId}`, `{your_secretAccessKey}`)

async function testFunction() {
    const result = await caver.kas.wallet.getAccount('0xfA7a3879D6Dee95525947D7C1d057E78a5cB25fC')
    // 해당 주소의 계정 조회
    console.log(result)
}
testFunction()

클레이튼 계정 목록 조회하기

const query = { fromTimestamp: 1501576981, toTimestamp: 1601876982, size: 3, cursor: '' }
// fromTimestamp: 검색범위: 시작 시간의 타임스탬프
// toTimestamp: 검색범위: 마지막 시간의 타임스탬프
// size: 응답 아이템 개수 (1~1000, default=100)
// cursur: 페이지네이션으로 다음 요청을 보낼 때 필요한 커서
const result = await caver.kas.wallet.getAccountList(query)

해당 타임스탬프 안에 속한 계정 목록이 응답으로 출력된다.

profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2021년 2월 20일

안녕하세여. 글에서 도움 많이 받고 있습니다.
다름이 아니라 계정 생성 관련해서 질문하나만 드려도 될런지요?

제가 계속

ErrorResponse {
_code: 1010009,
_message: 'The credential you provided does not match in our record.' }

발생을 하고 있습니다만 KAS에서 발급받은 키 값은 이상이 없다고 생각됩니다. 왜냐하면 키 값의 이상이 있다고 생각하여 수십회 재 발급 받고 해 보았거든요..

제가 작성한 코드는 이렇습니다.

const CaverExtKAS = require('caver-js-ext-kas')
const caver = new CaverExtKAS()

caver.initNodeAPI(1001, '{KASKHOZIDQRW14JL*}', '{0Z3F+0wR5H6xQehCdsxq3FSd****}')
caver.initTokenHistoryAPI(1001, '{KASKHOZIDQRW14JL*}', '{0Z3F+0wR5H6xQehCdsxq3FSd****}')
caver.initAnchorAPI(1001, '{KASKHOZIDQRW14JL*}', '{0Z3F+0wR5H6xQehCdsxq3FSd****}')
caver.initWalletAPI(1001, '{KASKHOZIDQRW14JL*}', '{0Z3F+0wR5H6xQehCdsxq3FSd****}')

async function testFunction() {
try{
const result = await caver.kas.wallet.createAccount()
console.log(result)
} catch (error) {
console.error(error)
}
}

testFunction()

블로그 코드와 동일하나 try{} catch()문을 추가하였습니다.

혹시 관련해서 원인이나 추가로 조치해 볼 수 있는 사항 알고 계신게 있다면 도움을 받아볼 수 있을까요?

감사합니다.

답글 달기