Web3js
未處理的拒絕(TypeError):param.map 不是函式
用於
Web3
執行事務,並得到以下錯誤:未處理的拒絕(TypeError):param.map 不是函式未擷取(承諾中)TypeError:param.map 不是 ABICoder.push../node_modules/web3-eth/node_modules/web3-eth-abi/lib/ 中的函式index.js.ABICoder.formatParam
這是程式碼片段:
const detectEth = async () => { if (window.ethereum) { window.web3 = new web3(window.ethereum); await window.ethereum.enable() } else if (window.web3) { window.web3 = new web3(window.web3.currentProvider); } else { window.alert('Non-Ethereum browser detected. You should consider trying MetaMask!') } }; const mint = async () => { detectEth(); const web3 = window.web3; const contract = new web3.eth.Contract(NFT_ABI, NFT_CONTRACT_ADDRESS, { gasLimit: "1000000" }); // This function works well const mintFees = await nftContract.methods.mintFees().call({ from: accountAddress, to: NFT_CONTRACT_ADDRESS }); // ERROR coming from this line contract.methods.claim(index, hash, proof, id).send({ from: accountAddress, value: mintFees }, (error, transactionHash) => { if (error) { console.log('In Error'); console.log(error); hideSpinner(); } }); }
感謝您的幫助。
問題是有未定義的參數。
我自己也面臨同樣的錯誤。
基本上,這裡的參數之一——索引、雜湊、證明、id——應該作為數組傳入。檢查 ABI 或塊資源管理器中的輸入類型,它會相應地顯示。