Open13

OpenZeppelin の Upgrades Plugins の仕組みを調べる

odanodan

plugin-hardhat には contracts ディレクトリがあるのに、plugin-truffle にはないのはなんでなんだろう...。

odanodan

多分サンプル用のコントラクトな気がする

ActionV2BadAction とメモリの並びが違うのでアプデできないパターン

odanodan

packages/plugin-hardhat/test/beacon-happy-path-with-enums.js で使われていた

odanodan

デフォルトの kind はここで選択されている

https://github.com/OpenZeppelin/openzeppelin-upgrades/blob/770e1e838b44f7de5d1bf6053508749265744ceb/packages/core/src/proxy-kind.ts#L38-L60

引数に代入してほしくない :innocent:

コードを追ってくとここで決定されているみたい

https://github.com/OpenZeppelin/openzeppelin-upgrades/blob/53d9386931f33e2a761189084506da8b713404c9/packages/core/src/validate/query.ts#L151-L160

uupstransparent のどっちが選択されるかは、対象のコントラクトが upgradeTo(address) というインタフェースを持っているかどうからしい

ない場合は transparent が選ばれるらしい?