Solidity

如何將整數傳輸到 UINT256 用於智能合約

  • October 10, 2022

我正在為我的自定義令牌創建一個水龍頭網站,但我無法指定需要發送的金額。有人知道如何將 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 合作。

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