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

how to call constructor with arguments in REMIX (Solidity IDE ) from web3

所以我用 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

我相信您使用的是较新版本的 web3。您可以恢复到以前的版本 0.20.0 或使用下面的新语法。

When using version 1.0.x of web3 you need to pass in the Application Binary Interface, i.e. abi. And use the new keyword

文档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"]})