Truffle / Ganache: есть ли способ установить адрес развертывания?

#ethereum #solidity #truffle #ganache

#ethereum #надежность #трюфель #ганаш

Вопрос:

В настоящее время я разрабатываю dapp в Solidity и хочу часто тестировать его локально вместе с обновлениями, поэтому я действительно не хочу каждый раз повторно развертывать его в тестовой сети. Однако каждый раз, когда я его развертываю, адрес, на который развертывается смарт-контракт, меняется, поэтому мне приходится обновлять свой интерфейсный код до нового адреса.

Есть ли способ «заставить» смарт-контракт всегда развертываться по одному и тому же адресу? Или есть какое-либо другое эквивалентное решение, о котором вы могли бы подумать?

Спасибо!

Комментарии:

1. К вашему сведению blog.zeppelinos.org/proxy-patterns

2. Это интересно, но в моем случае это не очень помогает… Если я что-то не пропустил?

3. Вы когда-нибудь находили способ установить адрес контракта во время развертывания?

Ответ №1:

Столкнулся с той же проблемой. Я не знаю, законно ли это, но вы можете сделать:

в вашем файле миграции (migrations/1_example_migration.js )

 var MyContract = artifacts.require("MyContract");

module.exports = function(deployer) {
    console.log(deployer);
    console.log(arguments);
    let n = 5; // it can be any address from list of available
    deployer.deploy(MyContract, {from: arguments[2][n]});
};
  

Документация

Ответ №2:

вы можете получить список учетных записей, который у вас есть, передав аргумент accounts в файлах следующим deploy_migration образом :

 module.exports = function(deployer, network, accounts) {
  // Use the accounts within your migrations.
}