Testing

如何解決“發送者沒有足夠的資金發送 tx。預付費用為:xxxxxxxxxxxxxxxx,發送者的賬戶只有:0”?

  • March 19, 2022

我在這裡找到了這個問題的類似答案,但我正在使用安全帽和乙太幣進行測試。

我只是將 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 為所有交易設置的價格和金額的預設配置。

另外,這個錯誤是在交易發送到網路之前拋出的,所以它與區塊鏈本身無關。

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