Wie gebe ich bytes32 [] beim Remix ein?

Oct 21 2020

Ich habe einen Konstruktor wie diesen:

constructor(bytes32[] proposalNames) public {
...

Wie gebe ich Werte für die Deplyoment mit Remix ein? Ich habe es versucht, ["foo", "bar"]aber es sagte:

Erstellung des Stimmzettels fehlerhaft: Fehler beim Codieren der Argumente: Fehler: ungültiger bytes32-Wert (arg = "", coderType = "bytes32", value = "foo", version = 4.0.47)

Antworten

2 goodvibration Oct 20 2020 at 23:24

Diese:

const Web3 = require("web3");

console.log(Web3.utils.asciiToHex("foo"));
console.log(Web3.utils.asciiToHex("bar"));

Gibt:

0x666f6f
0x626172

Daher glaube ich, dass eines der folgenden Elemente für Sie funktionieren sollte:

[0x666f6f, 0x626172]
["0x666f6f", "0x626172"]
[0x666f6f0000000000000000000000000000000000000000000000000000000000, 0x6261720000000000000000000000000000000000000000000000000000000000]
["0x666f6f0000000000000000000000000000000000000000000000000000000000", "0x6261720000000000000000000000000000000000000000000000000000000000"]