Solidity
使用 ethers js 的 Safemint
我的 ERC721 程式碼安全薄荷是這樣的:
function mint(address _to, uint256 _mintAmount) public payable { uint256 supply = totalSupply(); {some requires} for (uint256 i = 1; i <= _mintAmount; i++) { _safeMint(_to, supply + i); } }
我如何將相同的 ethers js 程式碼放在可以與合約程式碼互動的反應網站中?
我試過類似的東西:
const SmartContract = new ethers.Contract( address, abi, signer ) await SmartContract.mint( to, amount )
where to:接收方地址,amount 是鑄幣金額。
但它不起作用。它給出了錯誤:
RPC Error: execution reverted: ether value is invalid
由 require 方法處理:
require((cost.mul(_mintAmount)) <= msg.value, "ether value is invalid");
請讓我知道如何解決此問題。
問題是您沒有發送乙太幣,要使用 etherjs 發送乙太幣,您將一個對像作為最後一個參數傳遞給帶有屬性值的函式呼叫,該值應該是 wei 中的乙太幣數量,這是一個範例
await SmartContract.mint(to,amount,{value: cost})