Mir ist aufgefallen, dass dieses Plugin zwar native Unterstützung für Diamond-Standard-konforme Verträge bietet, aber anscheinend keine manuelle Bereitstellung und Einrichtung des Diamond und seiner Facetten zulässt. Genauer gesagt mit folgendem Code: https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58/protocol/deploy/governance/02_kingmaker_governance_facet.ts#L16 -L56 bekomme ich folgende Fehlermeldung:
Wenn ich jedoch den unterstützten Ansatz zur Bereitstellung von Diamonds mit Faucets verwende, kann das Plugin mit read() / execute() korrekt mit ihnen interagieren (zB https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58 /protocol/deploy/01B_kingmaker_cowl.ts#L19). Können Sie in Ihrem Code auf dieses Verhalten hinweisen?
Der Grund für meinen Ansatz ist der Wunsch, nicht verpflichtet zu sein, die bestehenden Facetten im Auge zu behalten und nicht gezwungen zu sein, einen neuen Diamond mit anderen Facetten scheinbar neu zu implementieren, gemessen am Diamantaire-Code und der Plugin-API (z
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'],
});
Hey @lepidotteri beachte, dass sich die Arbeit an Diamond noch in der Beta-
Was Ihr Problem betrifft, welche Implementierung von Diamond verwenden Sie jedoch?
Hey @lepidotteri beachte, dass sich die Arbeit an Diamond noch in der Beta-
Hallo, vielen Dank für die Klarstellungen, Ihr Plugin ist zu wertvoll, um sich nicht darauf verlassen zu können. Wenn Sie also zustimmen, würde ich es einfach für unsere eigene Organisation weitergeben, mit der alleinigen Absicht, den aktuellen Diamond Standard-Support zu aktualisieren und zu verbessern
Was Ihr Problem betrifft, welche Implementierung von Diamond verwenden Sie jedoch?
Ich verwende das 3. hier: https://github.com/mudgen/diamond-3. Beachten Sie jedoch, dass nicht die Implementierung selbst das Problem ist, sondern dass das Problem in der Art und Weise liegen soll, wie Ihr Plugin mit den "benutzerdefinierten" Diamonds interagiert, die nicht korrekt mit der Schnittstelle verbunden werden können (z. B. https://github.com/ARM -Finance/kingmaker/blob/59dac1fb94f6aa3cb84dc4d84a536c9acedfe9ea/protocol/deploy/governance/02_kingmaker_governance_facet.ts#L32 execute () schlägt hier fehl, weil das Plugin, wie ich vermute, in diesem Fall die FaceCut-Methode verwendet, um nach Adia zu suchen ', gegen das "benutzerdefinierte" Diamond ABI).
Vielen Dank auch, dass Sie sich so schnell bei mir gemeldet haben, sehr geschätzt
So vermeiden Sie, dass ethers.js Probleme bei der Durchführung von Überprüfungen von ABIs aufwirft? https://github.com/wighawag/hardhat-deploy/blob/a842674b5a5a47ad2ee5b91c2fae1d3e1840e9b6/src/helpers.ts#L48 -L56
@lepidotteri ja, also nicht sicher, warum es in Ihrem Fall nicht funktioniert, da, wie Sie sehen, den diamondCutFact in das ABI einbeziehen
Sie sollten es in der Datei deployments/<network name>/Crown.json
Was das Forking angeht, wäre es toll, wenn Sie eine PR machen. Ich würde es gerne überprüfen, mit dem Ziel, wieder aufgenommen zu werden.
Vielen Dank
Die neueste Bauarbeiterhelm-Bereitstellung hat die Diamantunterstützung überarbeitet. bei Problemen wieder öffnen
Hilfreichster Kommentar
Die neueste Bauarbeiterhelm-Bereitstellung hat die Diamantunterstützung überarbeitet. bei Problemen wieder öffnen