Remix
如何在 Remix 中測試額外的參數?
我嘗試使用Remix來測試智能合約:
/******************************************************************** * Make bids with ETH or an ERC20 Token specified by the NFT seller.* * Additionally, a buyer can pay the asking price to conclude a sale* * of an NFT. * ********************************************************************/ function makeBid( address _nftContractAddress, uint256 _tokenId, address _erc20Token, uint128 _tokenAmount ) external payable auctionOngoing(_nftContractAddress, _tokenId) onlyApplicableBuyer(_nftContractAddress, _tokenId) { _makeBid(_nftContractAddress, _tokenId, _erc20Token, _tokenAmount); }
這是我的 JavaScript 測試:
await nftAuction .connect(user2) .makeBid(erc721.address, tokenId, zeroAddress, zeroERC20Tokens, { value: minPrice, });
這些是我的函式參數
makeBid
:"0xD4Fc541236927...",1,"0x0000000000000000000000000000000000000000",0, {value:100,}
最後一個是一個額外的參數,因為這個函式是 Payable 並且接受 Ether 轉賬,它在 Hardhat 測試中執行良好,所以我嘗試在 Remix 中輸入與上面相同的這一行並從 console 得到這個錯誤
"code=INVALID_ARGUMENT"
。在Remix上嘗試這個的正確語法是什麼?
如果您想在 remix IDE 中呼叫支付功能並使用交易發送乙太幣,那麼您需要使用這兩個提供的輸入欄位。給定的金額與gas費用無關。您的合約必須使用 msg.value 檢查發送的乙太幣數量