let price = 2100000000000000;
let mCaver = new Caver(window.klaytn);
let userWalletAccount = window.klaytn.selectedAddress;
price = new caver.utils.toBN(price);
const argumentParam = [ // deploy tuple(struct)
"1",
"2",
price.toString(), 200, 10, 100, false, true, false, 300
];
const name = "TEST123"; // 임시로 아무 문자
const symbol = "TEST1233"; // 임시로 아무 문자
const byteCodeData = '0x' + byteCode;
const argumentParams = [
name, // string
symbol, // string
userWalletAccount, // address
argumentParam // tuple
];
await mCaver.klay.sendTransaction({
type: 'SMART_CONTRACT_DEPLOY',
from: userWalletAccount,
data: mCaver.klay.abi.encodeContractDeploy(abi, byteCodeData, name, symbol, userWalletAccount, argumentParam),
gas: 6_000_000,
value: 0,
}).then(function (receipt) {
console.log(receipt)
});
스마트컨트랙트에 Struct 하나 받고있는데 문서가이드에 나와있는데로 encodeContractDeploy 사용했고 마지막에 argumentParam 인자에서 에러가 발생하고 있습니다.
Uncaught Error: types/value length mismatch (argument=“tuple”, value=[“1”,“2”,“2100000000000000”,200,10,100,false,true,false,300], code=INVALID_ARGUMENT, version=abi/5.0.7)
어떻게 넣어야 할까요? ^^
caver-js 1.6.5 사용중입니다.