Testing
如何解決“發送者沒有足夠的資金發送 tx。預付費用為:xxxxxxxxxxxxxxxx,發送者的賬戶只有:0”?
我在這裡找到了這個問題的類似答案,但我正在使用安全帽和乙太幣進行測試。
我只是將 erc20 發送到我的契約中,這是我的測試文件:
it("Transferring Tokens to myContract",async function(){ // const WETHTransferAmount10 = parseUnits("10", 18); const WETHTransferAmount10 = 10; console.log("myContract WETH Balance before Transfer: ",formatUnits(await WETHLocalContract.balanceOf(FactoryContract.address))); console.log("WETHAddress Eth Balance: ",formatUnits(await ethers.provider.getBalance(WETHcontractAddress))); // Approving FactoryContract with tokens await WETHLocalContract.connect(WETHSigner); await WETHLocalContract.approve(FactoryContract.address,WETHTransferAmount10); // await WETHSigner.sendTransaction(await WETHLocalContract.approve(FactoryContract.address,WETHTransferAmount10)); // console.log("ALLowance is: ", formatUnits(await WETHLocalContract.allowance(WETHSigner.address,FactoryContract.address))); // Transferring the token console.log("Balance of WETH owner in WETH: ", formatUnits(await WETHLocalContract.balanceOf(WETHSigner.address))); await FactoryContract.connect(WETHSigner).stakeToken(WETHcontractAddress,WETHTransferAmount10)
stakeToken 函式目前只有這一行
ERC20Interface(token).transferFrom(msg.sender, address(this), amount);
發送交易前您的餘額是多少。該錯誤表明您沒有足夠的餘額來支付交易費用。您還應該知道餘額必須等於您設置為最大值的餘額。
因此,在您的交易中,如果您設置了 20GWei 的價格和 10GWei 的 gas Amount,那麼在發送交易之前,您需要有相當於 200GWei(價格 * 金額)的餘額作為餘額。
在您的情況下,請檢查 hardHat 為所有交易設置的價格和金額的預設配置。
另外,這個錯誤是在交易發送到網路之前拋出的,所以它與區塊鏈本身無關。