как вызвать конструктор с аргументами в REMIX (Solidity IDE) из web3 - PullRequest
0 голосов
/ 06 мая 2018

поэтому я заключил контракт с именем Voting с помощью Remix IDE и конструктора с аргументами для этого контракта

я позвонил в контракт, выполнив это:

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

но у меня это не сработало! Как я могу вызвать Мой умный конструктор контрактов с аргументами в REMIX из моего web3.eth.contract! Спасибо: D

1 Ответ

0 голосов
/ 25 июля 2018

Я полагаю, вы используете более новую версию web3. Вы можете вернуться к предыдущей версии 0.20.0 или использовать новый синтаксис ниже.

При использовании версии 1.0.x web3 вам необходимо перейти в Приложение Бинарный интерфейс, то есть 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"]})
...