Передать параметры в Solidity Constructor из Truffle CONSOLE

Как передать параметры конструктора контракту, который мы хотим протестировать? Я понимаю, что первоначальное развертывание контракта происходит в migrationsфайле, но если в целях тестирования/отладки мы хотим развернуть и создать экземпляр контракта в Truffle Console, как нам это сделать? Как насчет наших тестовых файлов?

Например, скажем, наш ExampleContract.solфайл:

contract ExampleContract { function ExampleContract(uint256 my_param){} })

И наш 2_deploy_contracts.jsфайл имеет эту строку вверху, но не развертывает контракт:

var ExampleContract = artifacts.require("./ExampleContract.sol");

Мы открываем консоль Truffle Ganache, а затем переносим наши данные в:

truffle console --network ganache

migrate --compile-all

Теперь у нас есть информация о контракте (включая его адрес), хранящаяся в ExampleContract, но как мы можем затем создать его экземпляр с параметрами, которые мы хотим передать в его конструктор? Что является эквивалентом объекта deployer.deploy, migrationsкоторому мы можем передавать параметры?

Ответы (1)

Это немного многословно в командной строке.

Вы ищете new.

Пытаться:

var c;
ExampleContract.new(arg1, arg2)
.then(function(instance) {
  c = instance;
});

Это развернет новый с аргументами, переданными конструктору.

Он не использовал развертыватель, поэтому не будет обновлять реестр миграций.

Надеюсь, поможет.