Caver-js / contract.call()사용 시 abi내용 중 array를 비워서 보내는건 불가능할까요?

안녕하세요!

abi중
{ “inputs”: [
{
“internalType”: “address”,
“name”: “token”,
“type”: “address”
},
{
“internalType”: “uint256”,
“name”: “amount”,
“type”: “uint256”
},
{
“internalType”: “address[]”,
“name”: “path”,
“type”: “address[]”
}
],
“name”: “exchangeKlayNeg”,
“outputs”: [],
“stateMutability”: “payable”,
“type”: “function”
},

이 부분을 사용하려 합니다.

js 코드부분은
contract = caver.contract.create(abi, contractAddress);
const callResult = await contract.call(‘exchangeKlayNeg’,‘0x5096db80b21ef45230c9e423c373f1fc9c0198dd’,‘0x38D7EA4C68000’,*****);

call의 마지막 인자값을 비워서 보내고 싶은데 컴파일 에러가 나더라구요…
Invalid number of parameters for “exchangeKlayNeg”. Got 2 expected 3!

그래서 비워서 보낸다 생각하고 ‘’ 또는 ’ ’ 를 넣으면
reason: ‘expected array value’,
code: ‘INVALID_ARGUMENT’,
argument: ‘path’,
value: ’ ’

이런 에러가 발생합니다.

혹시 어떻게 하면 될까요…?
답변 부탁드립니다! 도와주세요ㅜㅜ

안녕하세요

인자값을 아무것도 안보내면 안될것같습니다.

빈배열로 보낼 수 는있습니다.

안녕하세요 답변주셔서 감사합니다.
인자값을 빼고 했을 때 Invalid number of parameters for “exchangeKlayNeg”. Got 2 expected 3!라는 에러가 나옵니다.ㅜㅜ

, 를 끝에 넣어주시거나 비어있는 array 인 [] 로도 해보셨나요?

1개의 좋아요