如何在web3中使用REMIX(Solidity IDE)中的参数调用构造函数

时间:2018-05-06 15:02:30

标签: solidity web3js remix

所以我与Remix IDE和一个带有该合同参数的构造函数签订了一份名为“Voting”的合同

我通过这样做来调用合同:

var Contractabi = web3.eth.contract(contract Abi from Remix)
 var vote = Contractabi.at(Smart contract @ in REMIX );

所以到现在为止一切正常!但现在我需要使用带有参数

的构造函数来部署智能

我发现这样的方法很少:

var MyContract = web3.eth.contract(abiArray);

// deploy new contract
var contractInstance = MyContract.new([constructorParam1] [, constructorParam2], {data: '0x12345...', from: myAccount, gas: 1000000});

但它对我不起作用! 我如何从我的web3.eth.contract调用REMIX中的参数调用我的智能合约构造函数! 谢谢:D

1 个答案:

答案 0 :(得分:1)

我相信您正在使用Web3的较新版本。您可以还原到以前的版本0.20.0,也可以使用下面的新语法。

  

使用web3的1.0.x版本时,您需要传递应用程序   二进制接口,即abi。并使用new关键字

文档https://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#eth-contract

    Here is an example

    var contractABI = [{your contract abi}] 
    var subtestContract = new web3.eth.Contract(contractABI,{
         from: account1, 
         data: "your contract data", 
         gas: '4700000'
     })

    //arguments go inside deploy() using an array as follows
    subtestContract.deploy({arguments: ["hello"]})