Caver-js-ext-kas로 스마트 컨트랙 생성할 때 질문

안녕하세요

https://docs.klaytnapi.com/sdk를 참고해서 하고 있는데요.

  1. 아래 있는 abi는 제가 임의로 수정해도 되는건가요?

  2. ABI를 따로 설정하는 부분인건지, 아니면 build된 스마트 컨트랙의 abi를 참고해서 가져오는코드인지 설명 부탁드립니다.

  3. const byteCode 부분이 있는데, 컴파일을 해야 byteCode를 가져올 수 있는거 아닌가요?
    제가 IDE를 통해 KIP7Token을 발행해서 그런데 byteCode값을 어떻게 가져올 수 있을까요??


// caver-js-ext-kas
const CaverExtKAS = require('caver-js-ext-kas')
const caver = new CaverExtKAS()
const accessKeyId = '{access key ID of your KAS account}'
const secretAccessKey = '{secret access key of your KAS account}'

caver.initKASAPI(chainId, accessKeyId, secretAccessKey)

const abi = [
    {
        constant: true,
        inputs: [{ name: 'key', type: 'string' }],
        name: 'get',
        outputs: [{ name: '', type: 'string' }],
        payable: false,
        stateMutability: 'view',
        type: 'function',
    },
    {
        constant: false,
        inputs: [{ name: 'key', type: 'string' }, { name: 'value', type: 'string' }],
        name: 'set',
        outputs: [],
        payable: false,
        stateMutability: 'nonpayable',
        type: 'function',
    },
]
const contractAddress = '0x5D3Cd9eB73f00BbECB949DCE08BB26019FcB599f'
const contract = new caver.contract(abi, contractAddress)

// SmartContractExecution 트랜잭션을 발생시키는 from 계정은 충분한 KLAY를 소유하고 있어야 합니다.
const receipt = await contract.methods.set('key', 'value').send({ from: '0x{the address of a Klaytn account in KAS Wallet API}', gas: 5000000 })
console.log(receipt)

안녕하세요, 클레이튼 포럼에 질문을 올려주셔서 감사드립니다.

  1. ABI는 임의대로 수정하셔도 됩니다.

  2. 스마트 컨트랙트 코드를 빌드하면 ABI가 나오기 때문에 그 부분을 copy&paste하는 것이 일반적입니다.

  3. 아래 코드 부분에서는 bytecode가 보이지 않습니다. IDE를 통해 이미 배포하셨다면 bytecode는 따로 필요하지 않습니다. bytecode는 스마트 컨트랙트를 배포할 때 필요합니다. 만약 IDE에서 bytecode를 확인하고 싶으시다면, Compile 탭에서 컴파일을 하고 나시면 아래 "Detail"을 누르시면 확인하실 수 있습니다. "Bytecode"를 누르시면 해당 bytecode가 클립보드로 복사됩니다.

감사합니다.

1 Like