Solidity
bytes32 這個邏輯需要什麼輸入?我試過不同的字元串數據類型,比如“藍色”這個詞……我也嘗試過數字類型……沒有用!
pragma solidity ^0.8.0; contract Ballot { struct Voter { uint weight; bool voted; address delegate; uint vote; } struct Proposal { bytes32 name; uint voteCount; } address public chairperson; mapping(address => Voter) public voters; Proposal[] public proposals; constructor(bytes32[] memory proposalNames) { chairperson = msg.sender; voters[chairperson].weight = 1; for(uint i = 0; i < proposalNames.length; i++) { proposals.push(Proposal({name: proposalNames[i], voteCount: 0})); } } }
constructor
將類型 bytes32傳遞給智能合約$$ $$你應該給它這個聲明:
["bytes32","bytes32","bytes32",...]
要生成 bytes32,您可以使用此工具。您將字元串放入第一個文本框中,
bytes32/hex
從下拉列表中選擇類型,然後您必須複製在第二個文本框中生成的結果。現在,您添加 ‘0’ 直到此 bytes32 生成的長度為 64,而不計算 ‘0x’ 字元。此時,您可以使用我之前聲明的語句並將您的 bytes32 值放入其中。例子:字元串 =藍色
字節32 = 0x626c7565000000000000000000000000000000000000000000000000000000000000
建構子輸入:
$$ “0x626c756500000000000000000000000000000000000000000000000000000000” $$