Я работаю над несколькими проектами, используя truffle, как вы знаете, truffle компилирует и переносит контракты в различные сети ethereum, например , MyContract.sol создает MyContract.json , который содержит ссылку на адрес этого контракта в этой сети вместе с abi.
Одна из проблем, с которыми мы сталкиваемся, заключается в том, как поделиться этими сгенерированными файлами сборки между командой разработчиков, работающих над проектом.
Кто-нибудь сталкивался с этой проблемой и какое лучшее решение?
Основные проблемы:
Если мы зафиксируем файлы сборки в системе управления версиями, они будут содержать элементы, характерные для локальной машины пользователя, например , sourcePath и absolutePath .
Если мы не зафиксируем их, мы должны либо вручную обновить файлы abi json, чтобы они указывали на правильный адрес контракта.
Я чувствую, что, возможно, мы не понимаем, какой правильный процесс использовать при использовании трюфеля между командами, превышающими несколько человек в общем проекте.
Вся помощь приветствуется
Я не знаю, есть ли на это реальный ответ, но я использую это решение: я меняю файл миграции и пишу ABI и его адрес после развертывания.
вар фс = требуется ('фс'); var MyContract = артефакты.require('./MyContract.sol'); var fileContent = require('../build/contracts/MyContract.json'); module.exports = функция (развертыватель) { deployer.deploy(MyContract).then(() => { вар контрактКонфигурация = { abi: fileContent.abi, адрес: MyContract.address }; fs.writeFileSync('contractConfiguration/MyContract.json', JSON.stringify(contractConfiguration), { флаг: 'w' }); }); };
В моем случае я использую его, чтобы информация о моем контракте всегда обновлялась для целей пользовательского интерфейса. Таким образом, пользовательский интерфейс будет читать информацию внутри contractConfiguration
папки и всегда будет иметь обновленный адрес и ABI.
Каки Мастер Времени
Джимбоб1987