Как вызвать конструктор с аргументами в 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"]})