Hardhat-deploy: Алмазы не работают должным образом при развертывании граней вручную

Созданный на 17 февр. 2021  ·  5Комментарии  ·  Источник: wighawag/hardhat-deploy

Я заметил, что этот плагин, хотя и предлагает встроенную поддержку контрактов, совместимых со стандартом Diamond Standard, похоже, не позволяет вручную развертывать и настраивать Diamond и его Facets. Точнее, со следующим кодом: https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58/protocol/deploy/governance/02_kingmaker_governance_facet.ts#L16 -L56 Я получаю следующую ошибку:
image

Однако, если я использую поддерживаемый подход к развертыванию алмазов с помощью сборщиков, тогда плагин сможет правильно взаимодействовать с ними с помощью read () / execute () (например, https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58 /protocol/deploy/01B_kingmaker_cowl.ts#L19). Можете ли вы указать на такое поведение в своем коде?

Обоснованием моего подхода является желание не быть привязанным к отслеживанию существующих аспектов и не быть принужденным к повторному развертыванию нового Diamond с другими аспектами, судя по коду Diamantaire и API плагина (например,

await diamond.deploy('ADiamondContract', {
    from: deployer,
    owner: diamondAdmin,
    facets: ['Facet1', 'Facet2', 'Facet3'],
  });

 await diamond.deploy('ADiamondContract', {
    from: diamondAdmin, // this need to be the diamondAdmin for upgrade
    owner: diamondAdmin,
    facets: ['NewFacet', 'Facet2', 'Facet3'],
 });

Самый полезный комментарий

Последняя версия hardhat-deploy обновила поддержку алмазов. повторно открыть, если есть какие-либо проблемы

Все 5 Комментарий

Привет, @lepidotteri, обратите внимание, что работа над Diamond все еще находится в стадии бета-тестирования, и у меня не было времени заняться этим с некоторого времени. Маловероятно, что у меня скоро появятся ресурсы, чтобы посмотреть на него. Я планирую тем временем удалить его из документации, чтобы избежать путаницы.

Что касается вашей проблемы, какую реализацию Diamond вы используете?

Привет, @lepidotteri, обратите внимание, что работа над Diamond все еще находится в стадии бета-тестирования, и у меня не было времени заняться этим с некоторого времени. Маловероятно, что у меня скоро появятся ресурсы, чтобы посмотреть на него. Я планирую тем временем удалить его из документации, чтобы избежать путаницы.

Привет, спасибо за разъяснения, ваш плагин слишком ценен, чтобы на него нельзя было полагаться, поэтому, если вы согласны, я бы просто пошел дальше и форкнул его для нашей собственной организации с единственной целью обновить и улучшить его текущую поддержку Diamond Standard.

Что касается вашей проблемы, какую реализацию Diamond вы используете?

Здесь я использую третий: https://github.com/mudgen/diamond-3. Однако обратите внимание, что сама реализация не является проблемой, скорее проблема должна заключаться в том, как ваш плагин взаимодействует с «пользовательскими» бриллиантами, которые не могут правильно взаимодействовать с (например, https://github.com/ARM -Finance / kingmaker / blob / 59dac1fb94f6aa3cb84dc4d84a536c9acedfe9ea / protocol / deploy / Governance / 02_kingmaker_governance_facet.ts # L32 execute () здесь не работает, потому что, как я подозреваю, плагин использует vanilla ethers.js для поиска этого метода DiamondC в Facet в Facet. ', против "кастомного" Diamond ABI).

Кроме того, спасибо, что ответили мне так быстро, очень признательны

Так вот как избежать проблем, возникающих у ethers.js при проверке ABI? https://github.com/wighawag/hardhat-deploy/blob/a842674b5a5a47ad2ee5b91c2fae1d3e1840e9b6/src/helpers.ts#L48 -L56

@lepidotteri да, поэтому не уверен, почему он не работает в вашем случае, поскольку, как вы видите, он включает diamondCutFact в ABI

Вы должны увидеть это в файле deployments/<network name>/Crown.json

Что касается разветвления, было бы здорово, если бы вы устроили пиар. Я был бы рад просмотреть его, чтобы вернуть обратно.
Спасибо

Последняя версия hardhat-deploy обновила поддержку алмазов. повторно открыть, если есть какие-либо проблемы

Была ли эта страница полезной?
0 / 5 - 0 рейтинги