Web3js

錯誤:無效類型 (argument=‘type’, value=’s’, code=INVALID_ARGUMENT, version=abi/5.7.0) Web3.js

  • October 8, 2022

我正在嘗試使用 web3.js 呼叫只讀方法,但出現以下錯誤:

Error: invalid type (argument="type", value="s", code=INVALID_ARGUMENT, version=abi/5.7.0)  

這是我用來呼叫該方法的程式碼:

signedContract.methods.getEnabledCurrencies().call().then(console.log)

雖然以下是我的方法的 ABI:

{  type: 'function',
   name: 'getEnabledCurrencies',
   constant: true,
   stateMutability: 'view',
   payable: false,
   inputs: [],
   outputs: [ [Object] ]
 }

智能合約上的功能如下:

function getEnabledCurrencies() public view returns (string[] memory) {
   return currencyNames;
}

我可以使用相同的 signedContract 對象來呼叫狀態更改方法而不會出現任何問題。

嘗試將 ABI 中的輸出更改為:

"outputs": [
   {
       "internalType": "string[]",
       "name": "",
       "type": "string[]"
   }
]

引用自:https://ethereum.stackexchange.com/questions/137074