#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.
}