Closed7
Amoyテストネットでのみコントラクトのデプロイに失敗する場合はこれが原因かも
結論
operator-filter-registryを含んだコントラクトはAmoyへのデプロイが失敗します。
関連するエラー
Hardhatの場合
❯ yarn hardhat deploy --network amoy
Deploying contracts with the account: 0xXXX
Account balance: BigNumber { value: "xxx" }
An unexpected error occurred: Error: cannot estimate gas; transaction may fail or may require manual gas limit [ See: [https://links.ethers.org/v5-errors-UNPREDICTABLE_GAS_LIMIT](https://links.ethers.org/v5-errors-UNPREDICTABLE_GAS_LIMIT) ] (
...
Remix IDEの場合
Gas estimation failed
Gas estimation errored with the following message (see below). The transaction execution will likely fail. DO you want to force sending?
Error happened while trying to exevute a function inside a smart contract Eip838ExecutionError: execution reverted
原因についてざっくり調査
operator-filter-registry内で使用されているコントラクトが、新しいテストネットにデプロイされていないことが原因ではないか。
operator-filter-registryのリポジトリを見ると、DefaultOperatorFiltererではCANONICAL_CORI_SUBSCRIPTION
という定数が使用されている。
src/lib/Constants.sol
を見ると、以下のように定数が定義されておりコントラクトアドレスを指していることがわかる。
トランザクションのスキャナーサイトを見ると、このコントラクトはSepoliaなどにはデプロイがされているがAmoyにはデプロイされていない。
つまり、コントラクトのデプロイを行う際にoperator-filter-registry内で参照されているコントラクトが同一チェーン内に存在しないため、コントラクトのデプロイに必要なガス代の見積もりに失敗してしまう。
このスクラップは19日前にクローズされました