Ich habe MetaMask, das gut funktioniert - es ist so cool! Ich habe jedoch ein (Reaktions-)Formular, das viele Informationen sammelt und 14 verschiedene Aufrufe an erstellt sendTransaction
. Daher erhalte ich (derzeit) 14 Popup-Fenster von MetaMask, in denen ich aufgefordert werde, diese Transaktionen zu akzeptieren. Tatsächlich genau wie diese Situation: https://github.com/MetaMask/metamask-plugin/issues/1000
... was ich sehe, war "gelöst". Ich weiß also, dass es möglich ist, Anfragen zu stapeln, aber meine Frage ist, wie? Grundsätzlich, wie soll ich den sendAsync
Anruf bilden? Nehmen wir zum Beispiel an, ich hätte diese drei Transaktionen:
myContractObject.doSomething(name,type)
myContractObject.doSomethingElse(hash)
myContractObject.doSomethingElseEntirely(key)
Wie würde mein Aufruf aussehen web3.currentProvider.sendAsync
?
Sie können die Batch-Request- Web3-Funktion verwenden.
var batch = web3.createBatch();
batch.add(myContractInstance.doSomething(arg1, arg2, {from: account, gas: 4000000}));
batch.add(myContractInstance.doSomethingElse(arg1, arg2, {from: account, gas: 4000000}));
batch.add(myContractInstance.doSomethingElseEntirely(arg1, arg2, {from: account, gas: 4000000}));
batch.execute();
Sie haben einen legitimen Fehler in MetaMask gefunden, ich habe ihn hier im MetaMask-Github-Repository geöffnet (wo wir Fehler verfolgen und schließen):
Glühwächter
DanF
Gregor Jeanmart
Glühwächter