Solidity
我什至沒有呼叫的函式出現錯誤
我遇到了一個我不明白的錯誤,而且我不記得在程式碼中的任何地方定義過,有人可以解釋一下問題是什麼嗎?非常感謝。
properties_1.defineReadOnly(this, "fragments", abi.map(function (fragment) { ^ TypeError: Cannot read property 'map' of undefined
這是我的程式碼:
const { ethers } = require("hardhat"); const {abi} = require('./build/abi/mycontract.json'); require('dotenv').config(); const { ALCHEMY_API_KEY, ACCOUNT2_PRIVATE_KEY, ACCOUNT2_PUBLIC_KEY,CONTRACT_ADDRESS} = process.env; const provider = ethers.getDefaultProvider('rinkeby', { alchemykey: ALCHEMY_API_KEY }); const wallet = new ethers.Wallet.createRandom(); const walletWithProvider = wallet.connect(provider); const mycontract = new ethers.Contract(CONTRACT_ADDRESS,abi,walletWithProvider); async function stakeliquidity(){ await contractW.stakeCombinedLiquidity() .then(() => { console.log('staked succesfully'); }).catch(() => console.log('transaction error')); console.log('function called.'); } stakeliquidity(); //Unstake
TLDR;在您的第
abi
2 行 (const {abi} = ..
) 中聲明的可能是未定義的。您可以通過控制台日誌記錄來驗證它。
Cannot read property '*' of undefined
如果您使用庫,則在程式碼中的某個位置會出現錯誤,您錯誤地傳遞了未定義的值。此外,這表示property 'map'
,這意味著庫函式需要將值作為數組。幸運的是,您還有一個觸發此錯誤的程式碼片段,它包含abi.map
,並且變數名稱表明它是abi
,儘管這是來自 ethers.js 程式碼庫而不是您的程式碼庫。