Solidity
如何將整數傳輸到 UINT256 用於智能合約
我正在為我的自定義令牌創建一個水龍頭網站,但我無法指定需要發送的金額。有人知道如何將 INT 轉換為 Uint256。提前致謝!
這是我使用的程式碼:
var FromWalletID = getCookie("WalletID") var ToWalletID = document.getElementById('wallet_address').value var Aantal = document.getElementById('aantal').value EnergyContract.methods.mint(ToWalletID, Aantal).send({from: FromWalletID}).then(console.log);
契約程式碼:
contract EnergyVoting is ERC20, Ownable { constructor() ERC20("EnergyVoting", "ENGV") {} function mint(address to, uint256 amount) public { _mint(to, amount); }
}
在前端使用大整數可能會很棘手。我建議您將參數作為字元串而不是 Uint256 傳遞。
如果您想發送 1000 個令牌,即使您的合約接受 Uint256,這也應該有效。當然,您可以使用變數來代替。
EnergyContract.methods.mint(ToWalletID, "1000000000000000000000");
編輯:如果使用者在 UI 中寫入 1000,只需向其添加 18 個零並呼叫合約。看看這個轉換器:https ://www.eth-to-wei.com/請記住,您在契約中與 wei 合作。