Pase la matriz address[] al implementador de Truffle (MultisigWallet)

Estoy tratando de implementar el contrato MultisigWallet en testrpc. Sin embargo, no sé cómo proporcionar el address[] _ownersparámetro constructor en el comando de implementación.

He probado varias cosas, de las cuales la siguiente me ha parecido la más lógica:

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

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

Al ejecutar truffle migrate, recibo el siguiente error:

> 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)

Si alguien pudiera ayudarme con:

  • Pasar el parámetro del constructor address[] a deployer.deploy()o
  • Desplegando el MultisigWalletlocal testrpcusando trufa

editar: para MultisigWallet me refiero a https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/MultisigWallet.sol de zeppelin

intente cambiar su límite de gas, parece que no se proporcionó suficiente gas para ejecutar el contrato
@rstormsf gracias, ¿cómo haría eso? :s
verifique su archivo truffle.js y vea cuál es su gasvalor.{networks: {"main": {gas: 4712388 }}}

Respuestas (1)

Zeppelin MultiSigWallet.sol no implementa changeOwnerlo definido en la interfaz MultiSig.sol (que hereda). Esta podría ser la causa de la falla al implementar.

Vale la pena señalar que el contrato MultiSigWallet ahora se ha eliminado del repositorio de Zeppelin . Sugieren usar el último contrato multigrado de Consensys en su lugar.