Как вызвать конструктор с аргументами в REMIX (Solidity IDE) из web3

Поэтому я заключил контракт с именем 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! Спасибо

1 ответ

Решение

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

При использовании версии 1.0.x web3 вам необходимо передать бинарный интерфейс приложения, то есть abi. И использовать new ключевое слово

Документы https://web3js.readthedocs.io/en/1.0/web3-eth-contract.html

    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"]})
Другие вопросы по тегам