Adress[]-Array an Truffle-Deployer (MultisigWallet) übergeben

Ich versuche, den MultisigWallet-Vertrag auf bereitzustellen testrpc. Ich kann jedoch nicht herausfinden, wie der address[] _ownersKonstruktorparameter im Bereitstellungsbefehl bereitgestellt wird.

Ich habe mehrere Dinge ausprobiert, von denen mir die folgenden am logischsten erschienen:

var MultisigWallet = artifacts.require("./MultisigWallet.sol");

module.exports = function(deployer) {
  deployer.deploy(MultisigWallet, ["0x7cb7..."], 0, 10000);
};

Beim Ausführen truffle migrateerhalte ich folgenden Fehler:

> Error encountered, bailing. Network state unknown. Review successful
> transactions manually. Error: The contract code couldn't be stored,
> please check your gas amount.
>     at Object.callback (C:\...\node_modules\truffle\node_modules\web3\lib\web3\contract.js:147:46)
>     at C:\...\node_modules\truffle\node_modules\web3\lib\web3\method.js:142:25
>     at C:\...\node_modules\truffle\node_modules\web3\lib\web3\requestmanager.js:89:9
>     at XMLHttpRequest.request.onreadystatechange (C:\...\node_modules\truffle\node_modules\web3\lib\web3\httpprovider.js:118:13)
>     at XMLHttpRequestEventTarget.dispatchEvent (C:\...\node_modules\truffle\node_modules\xhr2\lib\xhr2.js:64:18)
>     at XMLHttpRequest._setReadyState (C:\...\node_modules\truffle\node_modules\xhr2\lib\xhr2.js:354:12)
>     at XMLHttpRequest._onHttpResponseEnd (C:\...\node_modules\truffle\node_modules\xhr2\lib\xhr2.js:509:12)
>     at IncomingMessage.<anonymous> (C:\...\node_modules\truffle\node_modules\xhr2\lib\xhr2.js:469:24)
>     at emitNone (events.js:91:20)
>     at IncomingMessage.emit (events.js:185:7)

Wenn mir jemand weiterhelfen könnte:

  • Übergabe des Konstruktorparameters address[]deployer.deploy() an or
  • Bereitstellen von MultisigWalleton local testrpcmit truffle

Bearbeiten: Für das MultisigWallet beziehe ich mich auf Zeppelins https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/MultisigWallet.sol

Versuchen Sie, Ihr Gaslimit zu ändern, scheint nicht genug Gas zur Verfügung zu stehen, um den Vertrag auszuführen
@rstormsf danke, wie würde ich das machen? :S
Überprüfen Sie Ihre truffle.js-Datei und sehen Sie, was Ihr gasWert ist.{networks: {"main": {gas: 4712388 }}}

Antworten (1)

Die Zeppelin MultiSigWallet.sol implementiert keine changeOwnerin der MultiSig.sol definierte Schnittstelle (die sie erbt). Dies könnte die Fehlerursache bei der Bereitstellung sein.

Erwähnenswert ist, dass der MultiSigWallet-Vertrag jetzt aus dem Zeppelin-Repo entfernt wurde . Sie schlagen vor, stattdessen den neuesten Multisig-Vertrag von Consensys zu verwenden .