From 9a5e87985b80f570e9f32cac83f326fdbdc23389 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Tue, 11 Jul 2023 12:22:37 -0700 Subject: [PATCH 01/12] feat: Add ts contract package for TS different package nah do it right Update packages/contracts-ts/CODE_GEN.md Update packages/contracts-ts/CODE_GEN.md Update packages/contracts-ts/package.json Update packages/contracts-ts/package.json Update packages/contracts-ts/package.json Update packages/contracts-ts/package.json Update packages/contracts-ts/package.json Update packages/contracts-ts/wagmi.config.ts Update packages/contracts-ts/wagmi.config.ts feat: generate abis too feat: Update op-bindings README feat: Add lint feat: Add circleci fix: Fix deploy config fix: Add coverage fix: linter self review nits fix: Test was not doing what it thought it was doing linter --- .changeset/config.json | 2 +- .circleci/config.yml | 28 + nx.json | 3 + op-bindings/README.md | 4 + packages/contracts-bedrock/package.json | 6 +- packages/contracts-ts/.gitignore | 8 + packages/contracts-ts/.prettierignore | 7 + packages/contracts-ts/.prettierrc.cjs | 3 + packages/contracts-ts/CODE_GEN.md | 14 + packages/contracts-ts/LICENSE | 21 + packages/contracts-ts/README.md | 64 + packages/contracts-ts/abis.json | 7204 +++++++ packages/contracts-ts/addresses.json | 86 + packages/contracts-ts/example.env | 5 + packages/contracts-ts/package.json | 83 + packages/contracts-ts/setupVitest.ts | 4 + packages/contracts-ts/src/actions.spec.ts | 31 + packages/contracts-ts/src/actions.ts | 8097 +++++++ packages/contracts-ts/src/constants.spec.ts | 12 + packages/contracts-ts/src/constants.ts | 10108 +++++++++ packages/contracts-ts/src/index.ts | 1 + packages/contracts-ts/src/react.spec.tsx | 87 + packages/contracts-ts/src/react.ts | 19744 ++++++++++++++++++ packages/contracts-ts/src/vite-env.d.ts | 1 + packages/contracts-ts/tsconfig.json | 15 + packages/contracts-ts/tsup.config.ts | 11 + packages/contracts-ts/vite.config.ts | 12 + packages/contracts-ts/wagmi.config.ts | 365 + pnpm-lock.yaml | 3887 +++- 29 files changed, 49584 insertions(+), 329 deletions(-) create mode 100644 packages/contracts-ts/.gitignore create mode 100644 packages/contracts-ts/.prettierignore create mode 100644 packages/contracts-ts/.prettierrc.cjs create mode 100644 packages/contracts-ts/CODE_GEN.md create mode 100644 packages/contracts-ts/LICENSE create mode 100644 packages/contracts-ts/README.md create mode 100644 packages/contracts-ts/abis.json create mode 100644 packages/contracts-ts/addresses.json create mode 100644 packages/contracts-ts/example.env create mode 100644 packages/contracts-ts/package.json create mode 100644 packages/contracts-ts/setupVitest.ts create mode 100644 packages/contracts-ts/src/actions.spec.ts create mode 100644 packages/contracts-ts/src/actions.ts create mode 100644 packages/contracts-ts/src/constants.spec.ts create mode 100644 packages/contracts-ts/src/constants.ts create mode 100644 packages/contracts-ts/src/index.ts create mode 100644 packages/contracts-ts/src/react.spec.tsx create mode 100644 packages/contracts-ts/src/react.ts create mode 100644 packages/contracts-ts/src/vite-env.d.ts create mode 100644 packages/contracts-ts/tsconfig.json create mode 100644 packages/contracts-ts/tsup.config.ts create mode 100644 packages/contracts-ts/vite.config.ts create mode 100644 packages/contracts-ts/wagmi.config.ts diff --git a/.changeset/config.json b/.changeset/config.json index 070f854b6ee9..dcbf610fa5eb 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -3,7 +3,7 @@ "changelog": ["@changesets/changelog-github", { "repo": "ethereum-optimism/optimism" }], "commit": false, "fixed": [], - "linked": [], + "linked": [["contracts-bedrock", "contracts-ts"]], "access": "public", "baseBranch": "develop", "updateInternalDependencies": "patch", diff --git a/.circleci/config.yml b/.circleci/config.yml index 78c695597280..6464993d37fa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -709,6 +709,27 @@ jobs: name: Upload coverage command: codecov --verbose --clean --flags <> + contracts-ts-tests: + docker: + - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:latest + resource_class: large + steps: + - checkout + - attach_workspace: { at: "." } + - restore_cache: + name: Restore pnpm Package Cache + keys: + - pnpm-packages-v2-{{ checksum "pnpm.lock.yaml" }} + - check-changed: + patterns: sdk,contracts-bedrock,contracts + - run: + name: Check generated and build + command: pnpm generate:check + working_directory: packages/contracts-ts + - run: + name: typecheck + command: pnpm typecheck + sdk-next-tests: docker: - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:latest @@ -1336,6 +1357,13 @@ workflows: dependencies: "(common-ts|core-utils|sdk)" requires: - pnpm-monorepo + - js-lint-test: + name: contracts-ts-tests + coverage_flag: contracts-ts-tests + package_name: contracts-ts + dependencies: '(contracts-bedrock|contracts-ts)' + requires: + - pnpm-monorepo - js-lint-test: name: sdk-next-tests coverage_flag: sdk-next-tests diff --git a/nx.json b/nx.json index 00c2b8d6ef46..520403003da5 100644 --- a/nx.json +++ b/nx.json @@ -56,6 +56,9 @@ "inputs": ["default", "testing", "^production"], "dependsOn": ["^build"] }, + "generate": { + "dependsOn": ["^build"] + }, "build:contracts": { "inputs": [ "configsProject", diff --git a/op-bindings/README.md b/op-bindings/README.md index a9a09d6efb36..5a40a11c93e4 100644 --- a/op-bindings/README.md +++ b/op-bindings/README.md @@ -28,3 +28,7 @@ $ make devtools ``` The geth docs for `abigen` can be found [here](https://geth.ethereum.org/docs/dapp/native-bindings). + +## See also + +TypeScript bindings are also generated in [@eth-optimism/contracts-ts](../packages/contracts-ts/) diff --git a/packages/contracts-bedrock/package.json b/packages/contracts-bedrock/package.json index 8fd2e5052a1b..2d21a3249ed5 100644 --- a/packages/contracts-bedrock/package.json +++ b/packages/contracts-bedrock/package.json @@ -9,8 +9,10 @@ "contracts/**/*.sol" ], "scripts": { - "bindings": "cd ../../op-bindings && make", - "build": "npx nx build:contracts", + "bindings": "pnpm bindings:ts && pnpm bindings:go", + "bindings:ts": "nx generate @eth-optimism/contracts-ts", + "bindings:go": "cd ../../op-bindings && make", + "build": "nx build:contracts", "prebuild:contracts": "./scripts/verify-foundry-install.sh", "build:contracts": "pnpm build:forge", "build:forge": "forge build", diff --git a/packages/contracts-ts/.gitignore b/packages/contracts-ts/.gitignore new file mode 100644 index 000000000000..a1e2a406af1b --- /dev/null +++ b/packages/contracts-ts/.gitignore @@ -0,0 +1,8 @@ +artifacts +cache +typechain +.deps +.envrc +.env +/dist/ +coverage diff --git a/packages/contracts-ts/.prettierignore b/packages/contracts-ts/.prettierignore new file mode 100644 index 000000000000..ea808af54514 --- /dev/null +++ b/packages/contracts-ts/.prettierignore @@ -0,0 +1,7 @@ +artifacts +cache +typechain +.deps +.envrc +.env +/dist/ diff --git a/packages/contracts-ts/.prettierrc.cjs b/packages/contracts-ts/.prettierrc.cjs new file mode 100644 index 000000000000..2d293bab8925 --- /dev/null +++ b/packages/contracts-ts/.prettierrc.cjs @@ -0,0 +1,3 @@ +module.exports = { + ...require('../../.prettierrc.js'), +} diff --git a/packages/contracts-ts/CODE_GEN.md b/packages/contracts-ts/CODE_GEN.md new file mode 100644 index 000000000000..262e7984f581 --- /dev/null +++ b/packages/contracts-ts/CODE_GEN.md @@ -0,0 +1,14 @@ +# Code gen + +Summary - + +- This package is generated from [contracts-bedrock](../contracts-bedrock/) +- It's version is kept in sync with contracts bedrock via the [changeset config](../../.changeset/config.json) e.g. if contracts-bedrock is `4.2.0` this package will have the same version. + +## Code gen instructions + +To run the code gen run the `generate` script from [package.json](./package.json). Make sure node modules is installed. + +```bash +pnpm i && pnpm generate +``` diff --git a/packages/contracts-ts/LICENSE b/packages/contracts-ts/LICENSE new file mode 100644 index 000000000000..86541fdc788e --- /dev/null +++ b/packages/contracts-ts/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Optimism + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/contracts-ts/README.md b/packages/contracts-ts/README.md new file mode 100644 index 000000000000..04df71cd3f62 --- /dev/null +++ b/packages/contracts-ts/README.md @@ -0,0 +1,64 @@ +## Contracts TS + +[![codecov](https://codecov.io/gh/ethereum-optimism/optimism/branch/develop/graph/badge.svg?token=0VTG7PG7YR&flag=contracts-bedrock-tests)](https://codecov.io/gh/ethereum-optimism/optimism) + +ABI and Address constants + generated code from [@eth-optimism/contracts-bedrock/](../contracts-bedrock/) for use in TypeScript. + +Much of this package is generated. See [CODE_GEN.md](./CODE_GEN.md) for instructions on how to generate. + +#### @eth-optimism/contracts-ts + +The main entrypoint exports constants related to contracts bedrock as const. As const allows it to be [used in TypeScript with stronger typing than importing JSON](https://github.com/microsoft/TypeScript/issues/32063). + +- Exports contract abis. +- Exports contract addresses + +```typescript +import { + l2OutputOracleProxyABI, + l2OutputOracleAddresses, +} from '@eth-optimism/contracts-ts' + +console.log(l2OutputOracleAddresses[10], abi) +``` + +Addresses are also exported as an object for convenience. + +```typescript +import { addresses } from '@eth-optimism/contracts-ts' + +console.log(addresses.l2OutputOracle[10]) +``` + +#### @eth-optimism/contracts-ts/react + +- All [React hooks](https://wagmi.sh/cli/plugins/react) `@eth-optimism/contracts-ts/react` + +```typescript +import { useAddressManagerAddress } from '@eth-optimism/contracts-ts/react' + +const component = () => { + const { data, error, loading } = useAddressManagerAddress() + if (loading) { + return
Loading
+ } + if (err) { + return
Error
+ } + return
{data}
+} +``` + +#### @eth-optimism/contracts-ts/actions + +- All [wagmi actions](https://wagmi.sh/react/actions) for use in Vanilla JS or non react code + +```typescript +import { readSystemConfig } from '@eth-optimism/contracts-ts/actions' +console.log(await readSystemConfig()) +``` + +#### See Also + +- [Contracts bedrock specs](../../specs/) +- [Wagmi](https://wagmi.sh) diff --git a/packages/contracts-ts/abis.json b/packages/contracts-ts/abis.json new file mode 100644 index 000000000000..9e1fc81174b7 --- /dev/null +++ b/packages/contracts-ts/abis.json @@ -0,0 +1,7204 @@ +{ + "AddressManager": [ + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "_name", + "internalType": "string", + "type": "string", + "indexed": true + }, + { + "name": "_newAddress", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "_oldAddress", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "AddressSet" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_name", + "internalType": "string", + "type": "string" + } + ], + "name": "getAddress", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_address", + "internalType": "address", + "type": "address" + } + ], + "name": "setAddress", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + } + ], + "L1CrossDomainMessenger": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_portal", + "internalType": "contract OptimismPortal", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "msgHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + } + ], + "name": "FailedRelayedMessage" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "msgHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + } + ], + "name": "RelayedMessage" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "target", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "sender", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "message", + "internalType": "bytes", + "type": "bytes", + "indexed": false + }, + { + "name": "messageNonce", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "SentMessage" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "sender", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "SentMessageExtension1" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MESSAGE_VERSION", + "outputs": [ + { + "name": "", + "internalType": "uint16", + "type": "uint16" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_GAS_CALLDATA_OVERHEAD", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "OTHER_MESSENGER", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PORTAL", + "outputs": [ + { + "name": "", + "internalType": "contract OptimismPortal", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_CALL_OVERHEAD", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_CONSTANT_OVERHEAD", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_GAS_CHECK_BUFFER", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_RESERVED_GAS", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "pure", + "type": "function", + "inputs": [ + { + "name": "_message", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + } + ], + "name": "baseGas", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "failedMessages", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messageNonce", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_nonce", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_sender", + "internalType": "address", + "type": "address" + }, + { + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_message", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "relayMessage", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_message", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + } + ], + "name": "sendMessage", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "successfulMessages", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "xDomainMessageSender", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + } + ], + "L1ERC721Bridge": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_messenger", + "internalType": "address", + "type": "address" + }, + { + "name": "_otherBridge", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC721BridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC721BridgeInitiated" + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC721", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC721To", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "deposits", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeERC721", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messenger", + "outputs": [ + { + "name": "", + "internalType": "contract CrossDomainMessenger", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "otherBridge", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "L1StandardBridge": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_messenger", + "internalType": "address payable", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20BridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20BridgeInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "l1Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "l2Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20DepositInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "l1Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "l2Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20WithdrawalFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHBridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHBridgeInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHDepositInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHWithdrawalFinalized" + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC20To", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeETHTo", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l1Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l1Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositERC20To", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositETHTo", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "deposits", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeERC20", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeETH", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l1Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeERC20Withdrawal", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeETHWithdrawal", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2TokenBridge", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messenger", + "outputs": [ + { + "name": "", + "internalType": "contract CrossDomainMessenger", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "L2OutputOracle": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_submissionInterval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_l2BlockTime", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_startingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_startingTimestamp", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_proposer", + "internalType": "address", + "type": "address" + }, + { + "name": "_challenger", + "internalType": "address", + "type": "address" + }, + { + "name": "_finalizationPeriodSeconds", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + }, + { + "name": "l2OutputIndex", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "l2BlockNumber", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "l1Timestamp", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "OutputProposed" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "prevNextOutputIndex", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "newNextOutputIndex", + "internalType": "uint256", + "type": "uint256", + "indexed": true + } + ], + "name": "OutputsDeleted" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "CHALLENGER", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "FINALIZATION_PERIOD_SECONDS", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "L2_BLOCK_TIME", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PROPOSER", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "SUBMISSION_INTERVAL", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "computeL2Timestamp", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "deleteL2Outputs", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "getL2Output", + "outputs": [ + { + "name": "", + "internalType": "struct Types.OutputProposal", + "type": "tuple", + "components": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "timestamp", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "l2BlockNumber", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "getL2OutputAfter", + "outputs": [ + { + "name": "", + "internalType": "struct Types.OutputProposal", + "type": "tuple", + "components": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "timestamp", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "l2BlockNumber", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "getL2OutputIndexAfter", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_startingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_startingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "latestBlockNumber", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "latestOutputIndex", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "nextBlockNumber", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "nextOutputIndex", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_l1BlockHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_l1BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "proposeL2Output", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "startingBlockNumber", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "startingTimestamp", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "OptimismMintableERC20Factory": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "deployer", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "OptimismMintableERC20Created" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "StandardL2TokenCreated" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "BRIDGE", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createOptimismMintableERC20", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createStandardL2Token", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "OptimismPortal": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_l2Oracle", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "_guardian", + "internalType": "address", + "type": "address" + }, + { + "name": "_paused", + "internalType": "bool", + "type": "bool" + }, + { + "name": "_config", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "account", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "Paused" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "version", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "opaqueData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "TransactionDeposited" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "account", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "Unpaused" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "withdrawalHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + }, + { + "name": "success", + "internalType": "bool", + "type": "bool", + "indexed": false + } + ], + "name": "WithdrawalFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "withdrawalHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "WithdrawalProven" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "GUARDIAN", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "L2_ORACLE", + "outputs": [ + { + "name": "", + "internalType": "contract L2OutputOracle", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "SYSTEM_CONFIG", + "outputs": [ + { + "name": "", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_isCreation", + "internalType": "bool", + "type": "bool" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositTransaction", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [], + "name": "donateETH", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_tx", + "internalType": "struct Types.WithdrawalTransaction", + "type": "tuple", + "components": [ + { + "name": "nonce", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "sender", + "internalType": "address", + "type": "address" + }, + { + "name": "target", + "internalType": "address", + "type": "address" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + } + ] + } + ], + "name": "finalizeWithdrawalTransaction", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "finalizedWithdrawals", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_paused", + "internalType": "bool", + "type": "bool" + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "isOutputFinalized", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2Sender", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "pure", + "type": "function", + "inputs": [ + { + "name": "_byteCount", + "internalType": "uint64", + "type": "uint64" + } + ], + "name": "minimumGasLimit", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "params", + "outputs": [ + { + "name": "prevBaseFee", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "prevBoughtGas", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "prevBlockNum", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "pause", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "paused", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_tx", + "internalType": "struct Types.WithdrawalTransaction", + "type": "tuple", + "components": [ + { + "name": "nonce", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "sender", + "internalType": "address", + "type": "address" + }, + { + "name": "target", + "internalType": "address", + "type": "address" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + } + ] + }, + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_outputRootProof", + "internalType": "struct Types.OutputRootProof", + "type": "tuple", + "components": [ + { + "name": "version", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "stateRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "latestBlockhash", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "name": "_withdrawalProof", + "internalType": "bytes[]", + "type": "bytes[]" + } + ], + "name": "proveWithdrawalTransaction", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "provenWithdrawals", + "outputs": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "timestamp", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "l2OutputIndex", + "internalType": "uint128", + "type": "uint128" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "unpause", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "PortalSender": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_portal", + "internalType": "contract OptimismPortal", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PORTAL", + "outputs": [ + { + "name": "", + "internalType": "contract OptimismPortal", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "donate", + "outputs": [] + } + ], + "ProxyAdmin": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "addressManager", + "outputs": [ + { + "name": "", + "internalType": "contract AddressManager", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_newAdmin", + "internalType": "address", + "type": "address" + } + ], + "name": "changeProxyAdmin", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + } + ], + "name": "getProxyAdmin", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address", + "type": "address" + } + ], + "name": "getProxyImplementation", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "implementationName", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "isUpgrading", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "proxyType", + "outputs": [ + { + "name": "", + "internalType": "enum ProxyAdmin.ProxyType", + "type": "uint8" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_address", + "internalType": "address", + "type": "address" + } + ], + "name": "setAddress", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_address", + "internalType": "contract AddressManager", + "type": "address" + } + ], + "name": "setAddressManager", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_address", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + } + ], + "name": "setImplementationName", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_address", + "internalType": "address", + "type": "address" + }, + { + "name": "_type", + "internalType": "enum ProxyAdmin.ProxyType", + "type": "uint8" + } + ], + "name": "setProxyType", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_upgrading", + "internalType": "bool", + "type": "bool" + } + ], + "name": "setUpgrading", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_implementation", + "internalType": "address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_implementation", + "internalType": "address", + "type": "address" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "upgradeAndCall", + "outputs": [] + } + ], + "SystemConfig": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + }, + { + "name": "_overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "_config", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "updateType", + "internalType": "enum SystemConfig.UpdateType", + "type": "uint8", + "indexed": true + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ConfigUpdate" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "UNSAFE_BLOCK_SIGNER_SLOT", + "outputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "batcherHash", + "outputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "gasLimit", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + }, + { + "name": "_overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "_config", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "minimumGasLimit", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "overhead", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "resourceConfig", + "outputs": [ + { + "name": "", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "scalar", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_batcherHash", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "setBatcherHash", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_scalar", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "setGasConfig", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + } + ], + "name": "setGasLimit", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_config", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ], + "name": "setResourceConfig", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_unsafeBlockSigner", + "internalType": "address", + "type": "address" + } + ], + "name": "setUnsafeBlockSigner", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "unsafeBlockSigner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "SystemDictator": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "EXIT_1_NO_RETURN_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PROXY_TRANSFER_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "config", + "outputs": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "resourceConfig", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "currentStep", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "dynamicConfigSet", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "exit1", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "exited", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "finalize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "finalized", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_config", + "internalType": "struct SystemDictator.DeployConfig", + "type": "tuple", + "components": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "resourceConfig", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + } + ] + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2OutputOracleDynamicConfig", + "outputs": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "oldL1CrossDomainMessenger", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "optimismPortalDynamicConfig", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "phase1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "phase2", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step2", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step3", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step4", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step5", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l2OutputOracleDynamicConfig", + "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "name": "_optimismPortalDynamicConfig", + "internalType": "bool", + "type": "bool" + } + ], + "name": "updateDynamicConfig", + "outputs": [] + } + ], + "SystemDictator_goerli": [ + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "EXIT_1_NO_RETURN_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PROXY_TRANSFER_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "config", + "outputs": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "currentStep", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "dynamicConfigSet", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "exit1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "finalize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "finalized", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_config", + "internalType": "struct SystemDictator.DeployConfig", + "type": "tuple", + "components": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + } + ] + } + ] + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2OutputOracleDynamicConfig", + "outputs": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "oldL1CrossDomainMessenger", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step2", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step3", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step4", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step5", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step6", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l2OutputOracleDynamicConfig", + "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ], + "name": "updateL2OutputOracleDynamicConfig", + "outputs": [] + } + ], + "MintManager": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_upgrader", + "internalType": "address", + "type": "address" + }, + { + "name": "_governanceToken", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "DENOMINATOR", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MINT_CAP", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MINT_PERIOD", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "governanceToken", + "outputs": [ + { + "name": "", + "internalType": "contract GovernanceToken", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_account", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "mintPermittedAfter", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_newMintManager", + "internalType": "address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [] + } + ], + "OptimismMintableERC721Factory": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteChainId", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "deployer", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "OptimismMintableERC721Created" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "bridge", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createOptimismMintableERC721", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "isOptimismMintableERC721", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "remoteChainId", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "OptimismMintableERC721Factory_optimism-goerli": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteChainId", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "deployer", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "OptimismMintableERC721Created" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "BRIDGE", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "REMOTE_CHAIN_ID", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createOptimismMintableERC721", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "isOptimismMintableERC721", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "BaseFeeVault": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_recipient", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "value", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "Withdrawal" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_WITHDRAWAL_AMOUNT", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RECIPIENT", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "totalProcessed", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "withdraw", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "GasPriceOracle": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "baseFee", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "pure", + "type": "function", + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "gasPrice", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "getL1Fee", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "getL1GasUsed", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l1BaseFee", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "overhead", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "scalar", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "L1Block": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "DEPOSITOR_ACCOUNT", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "basefee", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "batcherHash", + "outputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "hash", + "outputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l1FeeOverhead", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l1FeeScalar", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "number", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "sequenceNumber", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_number", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_timestamp", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_basefee", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_hash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_sequenceNumber", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_l1FeeOverhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_l1FeeScalar", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "setL1BlockValues", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "timestamp", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "L1FeeVault": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_recipient", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "value", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "Withdrawal" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_WITHDRAWAL_AMOUNT", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RECIPIENT", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "totalProcessed", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "withdraw", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "L2CrossDomainMessenger": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_l1CrossDomainMessenger", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "msgHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + } + ], + "name": "FailedRelayedMessage" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "msgHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + } + ], + "name": "RelayedMessage" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "target", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "sender", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "message", + "internalType": "bytes", + "type": "bytes", + "indexed": false + }, + { + "name": "messageNonce", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "SentMessage" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "sender", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "SentMessageExtension1" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MESSAGE_VERSION", + "outputs": [ + { + "name": "", + "internalType": "uint16", + "type": "uint16" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_GAS_CALLDATA_OVERHEAD", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "OTHER_MESSENGER", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_CALL_OVERHEAD", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_CONSTANT_OVERHEAD", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_GAS_CHECK_BUFFER", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RELAY_RESERVED_GAS", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "pure", + "type": "function", + "inputs": [ + { + "name": "_message", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + } + ], + "name": "baseGas", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "failedMessages", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l1CrossDomainMessenger", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messageNonce", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_nonce", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_sender", + "internalType": "address", + "type": "address" + }, + { + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_message", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "relayMessage", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_message", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + } + ], + "name": "sendMessage", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "successfulMessages", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "xDomainMessageSender", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + } + ], + "L2ERC721Bridge": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_messenger", + "internalType": "address", + "type": "address" + }, + { + "name": "_otherBridge", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC721BridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC721BridgeInitiated" + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC721", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC721To", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeERC721", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messenger", + "outputs": [ + { + "name": "", + "internalType": "contract CrossDomainMessenger", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "otherBridge", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "L2StandardBridge": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_otherBridge", + "internalType": "address payable", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "l1Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "l2Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "DepositFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20BridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20BridgeInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHBridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHBridgeInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "l1Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "l2Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "WithdrawalInitiated" + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC20To", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeETHTo", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "deposits", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeERC20", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_l1Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeDeposit", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l1TokenBridge", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messenger", + "outputs": [ + { + "name": "", + "internalType": "contract CrossDomainMessenger", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "withdraw", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "withdrawTo", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "L2ToL1MessagePasser": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "nonce", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "sender", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "target", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes", + "indexed": false + }, + { + "name": "withdrawalHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": false + } + ], + "name": "MessagePassed" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": true + } + ], + "name": "WithdrawerBalanceBurnt" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MESSAGE_VERSION", + "outputs": [ + { + "name": "", + "internalType": "uint16", + "type": "uint16" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "burn", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_gasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "initiateWithdrawal", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messageNonce", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "sentMessages", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "SequencerFeeVault": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_recipient", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "value", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "Withdrawal" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_WITHDRAWAL_AMOUNT", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "RECIPIENT", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l1FeeWallet", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "totalProcessed", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "withdraw", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] +} diff --git a/packages/contracts-ts/addresses.json b/packages/contracts-ts/addresses.json new file mode 100644 index 000000000000..7531520892f4 --- /dev/null +++ b/packages/contracts-ts/addresses.json @@ -0,0 +1,86 @@ +{ + "AddressManager": { + "1": "0xdE1FCfB0851916CA5101820A69b13a4E276bd81F", + "5": "0xa6f73589243a6A7a9023b1Fa0651b1d89c177111" + }, + "L1CrossDomainMessenger": { + "1": "0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1", + "5": "0x5086d1eEF304eb5284A0f6720f79403b4e9bE294" + }, + "L1ERC721Bridge": { + "1": "0x5a7749f83b81B301cAb5f48EB8516B986DAef23D", + "5": "0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9" + }, + "L1StandardBridge": { + "1": "0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1", + "5": "0x636Af16bf2f682dD3109e60102b8E1A089FedAa8" + }, + "L2OutputOracle": { + "1": "0xdfe97868233d1aa22e815a266982f2cf17685a27", + "5": "0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0" + }, + "OptimismMintableERC20Factory": { + "1": "0x4200000000000000000000000000000000000012", + "5": "0x4200000000000000000000000000000000000012", + "420": "0x4200000000000000000000000000000000000012" + }, + "OptimismPortal": { + "1": "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed", + "5": "0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383" + }, + "PortalSender": { + "1": "0x0A893d9576b9cFD9EF78595963dc973238E78210", + "5": "0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4" + }, + "ProxyAdmin": { + "1": "0x4200000000000000000000000000000000000018", + "5": "0x4200000000000000000000000000000000000018" + }, + "SystemConfig": { + "1": "0x229047fed2591dbec1eF1118d64F7aF3dB9EB290", + "5": "0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60" + }, + "SystemDictator": { + "1": "0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB" + }, + "SystemDictator_goerli": { + "5": "0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971" + }, + "MintManager": { + "10": "0x5C4e7Ba1E219E47948e6e3F55019A647bA501005", + "420": "0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76" + }, + "OptimismMintableERC721Factory": { + "10": "0x4200000000000000000000000000000000000017" + }, + "OptimismMintableERC721Factory_optimism-goerli": { + "420": "0x4200000000000000000000000000000000000017" + }, + "BaseFeeVault": { + "420": "0x4200000000000000000000000000000000000019" + }, + "GasPriceOracle": { + "420": "0x420000000000000000000000000000000000000F" + }, + "L1Block": { + "420": "0x4200000000000000000000000000000000000015" + }, + "L1FeeVault": { + "420": "0x420000000000000000000000000000000000001a" + }, + "L2CrossDomainMessenger": { + "420": "0x4200000000000000000000000000000000000007" + }, + "L2ERC721Bridge": { + "420": "0x4200000000000000000000000000000000000014" + }, + "L2StandardBridge": { + "420": "0x4200000000000000000000000000000000000010" + }, + "L2ToL1MessagePasser": { + "420": "0x4200000000000000000000000000000000000016" + }, + "SequencerFeeVault": { + "420": "0x4200000000000000000000000000000000000011" + } +} diff --git a/packages/contracts-ts/example.env b/packages/contracts-ts/example.env new file mode 100644 index 000000000000..cc58d719b78d --- /dev/null +++ b/packages/contracts-ts/example.env @@ -0,0 +1,5 @@ +VITE_RPC_URL_L2_GOERLI= +VITE_RPC_URL_L2_MAINNET= +VITE_RPC_URL_L1_GOERLI= +VITE_RPC_URL_L1_MAINNET= + diff --git a/packages/contracts-ts/package.json b/packages/contracts-ts/package.json new file mode 100644 index 000000000000..404056c0c698 --- /dev/null +++ b/packages/contracts-ts/package.json @@ -0,0 +1,83 @@ +{ + "name": "@eth-optimism/contracts-ts", + "version": "0.15.0", + "description": "TypeScript interface for Contracts Bedrock", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/ethereum-optimism/optimism.git", + "directory": "packages/contracts-ts" + }, + "homepage": "https://optimism.io", + "type": "module", + "main": "dist/index.js", + "module": "dist/index.mjs", + "types": "src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" + }, + "./actions": { + "types": "./src/actions.ts", + "import": "./dist/actions.js", + "require": "./dist/actions.cjs" + }, + "./react": { + "types": "./src/react.ts", + "import": "./dist/react.js", + "require": "./dist/react.cjs" + } + }, + "files": [ + "dist/", + "src/" + ], + "scripts": { + "build": "tsup", + "generate": "nx build @eth-optimism/contracts-bedrock && wagmi generate && pnpm build && pnpm lint:fix", + "generate:check": "pnpm generate && git diff --exit-code ./addresses.json && git diff --exit-code ./abis.json", + "lint": "prettier --check .", + "lint:fix": "prettier --write .", + "test": "vitest", + "test:coverage": "vitest run --coverage", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "@eth-optimism/contracts-bedrock": "workspace:0.15.0", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react-hooks": "^8.0.1", + "@types/glob": "^8.1.0", + "@vitest/coverage-istanbul": "^0.33.0", + "@wagmi/cli": "^1.3.0", + "@wagmi/core": "^1.3.7", + "abitype": "^0.9.0", + "glob": "^7.2.3", + "isomorphic-fetch": "^3.0.0", + "jest-dom": "link:@types/@testing-library/jest-dom", + "jsdom": "^22.1.0", + "tsup": "^7.1.0", + "typescript": "^4.9.3", + "vite": "^4.4.3", + "vitest": "^0.33.0" + }, + "peerDependencies": { + "@wagmi/core": ">1.0.0", + "wagmi": ">1.0.0" + }, + "peerDependenciesMeta": { + "wagmi": { + "optional": true + }, + "@wagmi/core": { + "optional": true + } + }, + "dependencies": { + "@testing-library/react": "^14.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "viem": "^0.3.30" + } +} diff --git a/packages/contracts-ts/setupVitest.ts b/packages/contracts-ts/setupVitest.ts new file mode 100644 index 000000000000..0a879e628c88 --- /dev/null +++ b/packages/contracts-ts/setupVitest.ts @@ -0,0 +1,4 @@ +import fetch from 'isomorphic-fetch' + +// viem needs this +global.fetch = fetch diff --git a/packages/contracts-ts/src/actions.spec.ts b/packages/contracts-ts/src/actions.spec.ts new file mode 100644 index 000000000000..e88e5364eb2c --- /dev/null +++ b/packages/contracts-ts/src/actions.spec.ts @@ -0,0 +1,31 @@ +import { test, expect } from 'vitest' +import { getOptimismPortal } from './actions' +import { createConfig, configureChains } from 'wagmi' +import { jsonRpcProvider } from 'wagmi/providers/jsonRpc' +import { mainnet } from 'viem/chains' + +const { publicClient } = configureChains( + [mainnet], + [ + jsonRpcProvider({ + rpc: () => ({ + http: + import.meta.env.VITE_RPC_URL_L1_MAINNET ?? mainnet.rpcUrls.default[0], + }), + }), + ] +) + +createConfig({ + publicClient: ({ chainId }) => publicClient({ chainId }), +}) + +const blockNumber = BigInt(17681356) + +test('should be able to create a wagmi contract and use it', async () => { + const portal = getOptimismPortal({ chainId: 1 }) + expect(portal).toBeDefined() + expect(await portal.read.version({ blockNumber })).toMatchInlineSnapshot( + '"1.6.0"' + ) +}) diff --git a/packages/contracts-ts/src/actions.ts b/packages/contracts-ts/src/actions.ts new file mode 100644 index 000000000000..e0841f6f1879 --- /dev/null +++ b/packages/contracts-ts/src/actions.ts @@ -0,0 +1,8097 @@ +// Generated by @wagmi/cli@1.3.0 on 7/13/2023 at 5:05:37 PM +import { + getContract, + GetContractArgs, + readContract, + ReadContractConfig, + writeContract, + WriteContractMode, + WriteContractArgs, + WriteContractPreparedArgs, + WriteContractUnpreparedArgs, + prepareWriteContract, + PrepareWriteContractConfig, + watchContractEvent, + WatchContractEventConfig, + WatchContractEventCallback, +} from 'wagmi/actions' + +/* eslint-disable */ + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AddressManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: '_name', internalType: 'string', type: 'string', indexed: true }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerAddress = { + 1: '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + 5: '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerConfig = { + address: addressManagerAddress, + abi: addressManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address payable', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2OutputOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC20Created', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Paused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'TransactionDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'WithdrawalProven', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'finalizeWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'proveWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PortalSender +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProxyAdmin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemConfig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'setResourceConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + ], + name: 'setUnsafeBlockSigner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'optimismPortalDynamicConfig', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', + }, + ], + name: 'updateDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorAddress = { + 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateL2OutputOracleDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliAddress = { + 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryAddress = { + 10: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliAddress = { + 420: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Core +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function getAddressManager( + config: Omit & { + chainId?: keyof typeof addressManagerAddress + } +) { + return getContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function readAddressManager< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof addressManagerAddress + } +) { + return readContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function writeAddressManager< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof addressManagerAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof addressManagerAddress + }) +) { + return writeContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function prepareWriteAddressManager< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } +) { + return prepareWriteContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function watchAddressManagerEvent< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function getL1CrossDomainMessenger( + config: Omit & { + chainId?: keyof typeof l1CrossDomainMessengerAddress + } +) { + return getContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function readL1CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1CrossDomainMessengerAddress + } +) { + return readContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function writeL1CrossDomainMessenger< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1CrossDomainMessengerAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1CrossDomainMessengerAddress + }) +) { + return writeContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function prepareWriteL1CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } +) { + return prepareWriteContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function watchL1CrossDomainMessengerEvent< + TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function getL1Erc721Bridge( + config: Omit & { + chainId?: keyof typeof l1Erc721BridgeAddress + } +) { + return getContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function readL1Erc721Bridge< + TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1Erc721BridgeAddress + } +) { + return readContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function writeL1Erc721Bridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1Erc721BridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1Erc721BridgeAddress + }) +) { + return writeContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function prepareWriteL1Erc721Bridge< + TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } +) { + return prepareWriteContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function watchL1Erc721BridgeEvent< + TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function getL1StandardBridge( + config: Omit & { + chainId?: keyof typeof l1StandardBridgeAddress + } +) { + return getContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function readL1StandardBridge< + TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1StandardBridgeAddress + } +) { + return readContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function writeL1StandardBridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1StandardBridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1StandardBridgeAddress + }) +) { + return writeContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function prepareWriteL1StandardBridge< + TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress } +) { + return prepareWriteContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function watchL1StandardBridgeEvent< + TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function getL2OutputOracle( + config: Omit & { + chainId?: keyof typeof l2OutputOracleAddress + } +) { + return getContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function readL2OutputOracle< + TAbi extends readonly unknown[] = typeof l2OutputOracleABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2OutputOracleAddress + } +) { + return readContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function writeL2OutputOracle< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2OutputOracleAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2OutputOracleAddress + }) +) { + return writeContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function prepareWriteL2OutputOracle< + TAbi extends readonly unknown[] = typeof l2OutputOracleABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } +) { + return prepareWriteContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function watchL2OutputOracleEvent< + TAbi extends readonly unknown[] = typeof l2OutputOracleABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function getOptimismMintableErc20Factory( + config: Omit & { + chainId?: keyof typeof optimismMintableErc20FactoryAddress + } +) { + return getContract({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function readOptimismMintableErc20Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof optimismMintableErc20FactoryAddress + } +) { + return readContract({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function writeOptimismMintableErc20Factory< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismMintableErc20FactoryAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismMintableErc20FactoryAddress + }) +) { + return writeContract({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function prepareWriteOptimismMintableErc20Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } +) { + return prepareWriteContract({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function watchOptimismMintableErc20FactoryEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function getOptimismPortal( + config: Omit & { + chainId?: keyof typeof optimismPortalAddress + } +) { + return getContract({ + abi: optimismPortalABI, + address: + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function readOptimismPortal< + TAbi extends readonly unknown[] = typeof optimismPortalABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof optimismPortalAddress + } +) { + return readContract({ + abi: optimismPortalABI, + address: + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function writeOptimismPortal< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismPortalAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismPortalAddress + }) +) { + return writeContract({ + abi: optimismPortalABI, + address: + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function prepareWriteOptimismPortal< + TAbi extends readonly unknown[] = typeof optimismPortalABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress } +) { + return prepareWriteContract({ + abi: optimismPortalABI, + address: + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function watchOptimismPortalEvent< + TAbi extends readonly unknown[] = typeof optimismPortalABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimismPortalABI, + address: + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link portalSenderABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function getPortalSender( + config: Omit & { + chainId?: keyof typeof portalSenderAddress + } +) { + return getContract({ + abi: portalSenderABI, + address: + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link portalSenderABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function readPortalSender< + TAbi extends readonly unknown[] = typeof portalSenderABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof portalSenderAddress + } +) { + return readContract({ + abi: portalSenderABI, + address: + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link portalSenderABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function writePortalSender< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof portalSenderAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof portalSenderAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof portalSenderAddress + }) +) { + return writeContract({ + abi: portalSenderABI, + address: + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link portalSenderABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function prepareWritePortalSender< + TAbi extends readonly unknown[] = typeof portalSenderABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof portalSenderAddress } +) { + return prepareWriteContract({ + abi: portalSenderABI, + address: + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function getProxyAdmin( + config: Omit & { + chainId?: keyof typeof proxyAdminAddress + } +) { + return getContract({ + abi: proxyAdminABI, + address: + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function readProxyAdmin< + TAbi extends readonly unknown[] = typeof proxyAdminABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof proxyAdminAddress + } +) { + return readContract({ + abi: proxyAdminABI, + address: + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function writeProxyAdmin< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof proxyAdminAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof proxyAdminAddress + }) +) { + return writeContract({ + abi: proxyAdminABI, + address: + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function prepareWriteProxyAdmin< + TAbi extends readonly unknown[] = typeof proxyAdminABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof proxyAdminAddress } +) { + return prepareWriteContract({ + abi: proxyAdminABI, + address: + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function watchProxyAdminEvent< + TAbi extends readonly unknown[] = typeof proxyAdminABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof proxyAdminAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: proxyAdminABI, + address: + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function getSystemConfig( + config: Omit & { + chainId?: keyof typeof systemConfigAddress + } +) { + return getContract({ + abi: systemConfigABI, + address: + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function readSystemConfig< + TAbi extends readonly unknown[] = typeof systemConfigABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof systemConfigAddress + } +) { + return readContract({ + abi: systemConfigABI, + address: + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function writeSystemConfig< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof systemConfigAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof systemConfigAddress + }) +) { + return writeContract({ + abi: systemConfigABI, + address: + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function prepareWriteSystemConfig< + TAbi extends readonly unknown[] = typeof systemConfigABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress } +) { + return prepareWriteContract({ + abi: systemConfigABI, + address: + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function watchSystemConfigEvent< + TAbi extends readonly unknown[] = typeof systemConfigABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: systemConfigABI, + address: + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function getSystemDictator( + config: Omit & { + chainId?: keyof typeof systemDictatorAddress + } +) { + return getContract({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function readSystemDictator< + TAbi extends readonly unknown[] = typeof systemDictatorABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof systemDictatorAddress + } +) { + return readContract({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function writeSystemDictator< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof systemDictatorAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof systemDictatorAddress + }) +) { + return writeContract({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function prepareWriteSystemDictator< + TAbi extends readonly unknown[] = typeof systemDictatorABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorAddress } +) { + return prepareWriteContract({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function watchSystemDictatorEvent< + TAbi extends readonly unknown[] = typeof systemDictatorABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function getSystemDictatorGoerli( + config: Omit & { + chainId?: keyof typeof systemDictatorGoerliAddress + } +) { + return getContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function readSystemDictatorGoerli< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof systemDictatorGoerliAddress + } +) { + return readContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function writeSystemDictatorGoerli< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof systemDictatorGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof systemDictatorGoerliAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof systemDictatorGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof systemDictatorGoerliAddress + }) +) { + return writeContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function prepareWriteSystemDictatorGoerli< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } +) { + return prepareWriteContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function watchSystemDictatorGoerliEvent< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorGoerliAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function getMintManager( + config: Omit & { + chainId?: keyof typeof mintManagerAddress + } +) { + return getContract({ + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function readMintManager< + TAbi extends readonly unknown[] = typeof mintManagerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof mintManagerAddress + } +) { + return readContract({ + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function writeMintManager< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof mintManagerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof mintManagerAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof mintManagerAddress + }) +) { + return writeContract({ + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function prepareWriteMintManager< + TAbi extends readonly unknown[] = typeof mintManagerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress } +) { + return prepareWriteContract({ + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function watchMintManagerEvent< + TAbi extends readonly unknown[] = typeof mintManagerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function getOptimismMintableErc721Factory( + config: Omit & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } +) { + return getContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function readOptimismMintableErc721Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } +) { + return readContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function writeOptimismMintableErc721Factory< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismMintableErc721FactoryAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismMintableErc721FactoryAddress + }) +) { + return writeContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function prepareWriteOptimismMintableErc721Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc721FactoryAddress } +) { + return prepareWriteContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function watchOptimismMintableErc721FactoryEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc721FactoryAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function getOptimismMintableErc721FactoryOptimismGoerli( + config: Omit & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } +) { + return getContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function readOptimismMintableErc721FactoryOptimismGoerli< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } +) { + return readContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function writeOptimismMintableErc721FactoryOptimismGoerli< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + }) +) { + return writeContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function prepareWriteOptimismMintableErc721FactoryOptimismGoerli< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } +) { + return prepareWriteContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function watchOptimismMintableErc721FactoryOptimismGoerliEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function getBaseFeeVault( + config: Omit & { + chainId?: keyof typeof baseFeeVaultAddress + } +) { + return getContract({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function readBaseFeeVault< + TAbi extends readonly unknown[] = typeof baseFeeVaultABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof baseFeeVaultAddress + } +) { + return readContract({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function writeBaseFeeVault< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof baseFeeVaultAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof baseFeeVaultAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof baseFeeVaultAddress + }) +) { + return writeContract({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function prepareWriteBaseFeeVault< + TAbi extends readonly unknown[] = typeof baseFeeVaultABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress } +) { + return prepareWriteContract({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function watchBaseFeeVaultEvent< + TAbi extends readonly unknown[] = typeof baseFeeVaultABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link gasPriceOracleABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function getGasPriceOracle( + config: Omit & { + chainId?: keyof typeof gasPriceOracleAddress + } +) { + return getContract({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link gasPriceOracleABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function readGasPriceOracle< + TAbi extends readonly unknown[] = typeof gasPriceOracleABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof gasPriceOracleAddress + } +) { + return readContract({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function getL1Block( + config: Omit & { + chainId?: keyof typeof l1BlockAddress + } +) { + return getContract({ + abi: l1BlockABI, + address: l1BlockAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function readL1Block< + TAbi extends readonly unknown[] = typeof l1BlockABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1BlockAddress + } +) { + return readContract({ + abi: l1BlockABI, + address: l1BlockAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function writeL1Block< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1BlockAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1BlockAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1BlockAddress + }) +) { + return writeContract({ + abi: l1BlockABI, + address: l1BlockAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function prepareWriteL1Block< + TAbi extends readonly unknown[] = typeof l1BlockABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1BlockAddress } +) { + return prepareWriteContract({ + abi: l1BlockABI, + address: l1BlockAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function getL1FeeVault( + config: Omit & { + chainId?: keyof typeof l1FeeVaultAddress + } +) { + return getContract({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function readL1FeeVault< + TAbi extends readonly unknown[] = typeof l1FeeVaultABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1FeeVaultAddress + } +) { + return readContract({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function writeL1FeeVault< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1FeeVaultAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1FeeVaultAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1FeeVaultAddress + }) +) { + return writeContract({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function prepareWriteL1FeeVault< + TAbi extends readonly unknown[] = typeof l1FeeVaultABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress } +) { + return prepareWriteContract({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function watchL1FeeVaultEvent< + TAbi extends readonly unknown[] = typeof l1FeeVaultABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function getL2CrossDomainMessenger( + config: Omit & { + chainId?: keyof typeof l2CrossDomainMessengerAddress + } +) { + return getContract({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function readL2CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l2CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2CrossDomainMessengerAddress + } +) { + return readContract({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function writeL2CrossDomainMessenger< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof l2CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2CrossDomainMessengerAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof l2CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2CrossDomainMessengerAddress + }) +) { + return writeContract({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function prepareWriteL2CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l2CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } +) { + return prepareWriteContract({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function watchL2CrossDomainMessengerEvent< + TAbi extends readonly unknown[] = typeof l2CrossDomainMessengerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function getL2Erc721Bridge( + config: Omit & { + chainId?: keyof typeof l2Erc721BridgeAddress + } +) { + return getContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function readL2Erc721Bridge< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2Erc721BridgeAddress + } +) { + return readContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function writeL2Erc721Bridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2Erc721BridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2Erc721BridgeAddress + }) +) { + return writeContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function prepareWriteL2Erc721Bridge< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } +) { + return prepareWriteContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function watchL2Erc721BridgeEvent< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function getL2StandardBridge( + config: Omit & { + chainId?: keyof typeof l2StandardBridgeAddress + } +) { + return getContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function readL2StandardBridge< + TAbi extends readonly unknown[] = typeof l2StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2StandardBridgeAddress + } +) { + return readContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function writeL2StandardBridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2StandardBridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2StandardBridgeAddress + }) +) { + return writeContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function prepareWriteL2StandardBridge< + TAbi extends readonly unknown[] = typeof l2StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2StandardBridgeAddress } +) { + return prepareWriteContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function watchL2StandardBridgeEvent< + TAbi extends readonly unknown[] = typeof l2StandardBridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2StandardBridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function getL2ToL1MessagePasser( + config: Omit & { + chainId?: keyof typeof l2ToL1MessagePasserAddress + } +) { + return getContract({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function readL2ToL1MessagePasser< + TAbi extends readonly unknown[] = typeof l2ToL1MessagePasserABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2ToL1MessagePasserAddress + } +) { + return readContract({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function writeL2ToL1MessagePasser< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2ToL1MessagePasserAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2ToL1MessagePasserAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof l2ToL1MessagePasserABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2ToL1MessagePasserAddress + }) +) { + return writeContract({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function prepareWriteL2ToL1MessagePasser< + TAbi extends readonly unknown[] = typeof l2ToL1MessagePasserABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } +) { + return prepareWriteContract({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function watchL2ToL1MessagePasserEvent< + TAbi extends readonly unknown[] = typeof l2ToL1MessagePasserABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function getSequencerFeeVault( + config: Omit & { + chainId?: keyof typeof sequencerFeeVaultAddress + } +) { + return getContract({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function readSequencerFeeVault< + TAbi extends readonly unknown[] = typeof sequencerFeeVaultABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof sequencerFeeVaultAddress + } +) { + return readContract({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function writeSequencerFeeVault< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof sequencerFeeVaultAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof sequencerFeeVaultAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof sequencerFeeVaultAddress + }) +) { + return writeContract({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function prepareWriteSequencerFeeVault< + TAbi extends readonly unknown[] = typeof sequencerFeeVaultABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } +) { + return prepareWriteContract({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function watchSequencerFeeVaultEvent< + TAbi extends readonly unknown[] = typeof sequencerFeeVaultABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof sequencerFeeVaultAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} diff --git a/packages/contracts-ts/src/constants.spec.ts b/packages/contracts-ts/src/constants.spec.ts new file mode 100644 index 000000000000..69a3809bba92 --- /dev/null +++ b/packages/contracts-ts/src/constants.spec.ts @@ -0,0 +1,12 @@ +import { test, expect } from 'vitest' +import { addresses } from './constants' +import { readFileSync } from 'fs' +import { join } from 'path' + +const jsonAddresses = JSON.parse( + readFileSync(join(__dirname, '../addresses.json'), 'utf8') +) + +test('should have generated addresses', () => { + expect(addresses).toEqual(jsonAddresses) +}) diff --git a/packages/contracts-ts/src/constants.ts b/packages/contracts-ts/src/constants.ts new file mode 100644 index 000000000000..c7c498610497 --- /dev/null +++ b/packages/contracts-ts/src/constants.ts @@ -0,0 +1,10108 @@ +// Generated by @wagmi/cli@1.3.0 on 7/13/2023 at 5:05:36 PM + +/* eslint-disable */ + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AddressManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: '_name', internalType: 'string', type: 'string', indexed: true }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerAddress = { + 1: '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + 5: '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerConfig = { + address: addressManagerAddress, + abi: addressManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address payable', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2OutputOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC20Created', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Paused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'TransactionDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'WithdrawalProven', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'finalizeWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'proveWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PortalSender +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProxyAdmin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemConfig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'setResourceConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + ], + name: 'setUnsafeBlockSigner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'optimismPortalDynamicConfig', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', + }, + ], + name: 'updateDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorAddress = { + 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateL2OutputOracleDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliAddress = { + 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryAddress = { + 10: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliAddress = { + 420: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// addressesByContractByNetwork +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const addresses = { + AddressManager: { + '1': '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + '5': '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', + }, + L1CrossDomainMessenger: { + '1': '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + '5': '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', + }, + L1ERC721Bridge: { + '1': '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + '5': '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', + }, + L1StandardBridge: { + '1': '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + '5': '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', + }, + L2OutputOracle: { + '1': '0xdfe97868233d1aa22e815a266982f2cf17685a27', + '5': '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', + }, + OptimismMintableERC20Factory: { + '1': '0x4200000000000000000000000000000000000012', + '5': '0x4200000000000000000000000000000000000012', + '420': '0x4200000000000000000000000000000000000012', + }, + OptimismPortal: { + '1': '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + '5': '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', + }, + PortalSender: { + '1': '0x0A893d9576b9cFD9EF78595963dc973238E78210', + '5': '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', + }, + ProxyAdmin: { + '1': '0x4200000000000000000000000000000000000018', + '5': '0x4200000000000000000000000000000000000018', + }, + SystemConfig: { + '1': '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + '5': '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', + }, + SystemDictator: { '1': '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB' }, + SystemDictator_goerli: { '5': '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971' }, + MintManager: { + '10': '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + '420': '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', + }, + OptimismMintableERC721Factory: { + '10': '0x4200000000000000000000000000000000000017', + }, + 'OptimismMintableERC721Factory_optimism-goerli': { + '420': '0x4200000000000000000000000000000000000017', + }, + BaseFeeVault: { '420': '0x4200000000000000000000000000000000000019' }, + GasPriceOracle: { '420': '0x420000000000000000000000000000000000000F' }, + L1Block: { '420': '0x4200000000000000000000000000000000000015' }, + L1FeeVault: { '420': '0x420000000000000000000000000000000000001a' }, + L2CrossDomainMessenger: { + '420': '0x4200000000000000000000000000000000000007', + }, + L2ERC721Bridge: { '420': '0x4200000000000000000000000000000000000014' }, + L2StandardBridge: { '420': '0x4200000000000000000000000000000000000010' }, + L2ToL1MessagePasser: { '420': '0x4200000000000000000000000000000000000016' }, + SequencerFeeVault: { '420': '0x4200000000000000000000000000000000000011' }, +} as const +export const predeploys = { + LegacyMessagePasser: { + address: '0x4200000000000000000000000000000000000000', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + DeployerWhitelist: { + address: '0x4200000000000000000000000000000000000002', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + LegacyERC20ETH: { + address: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', + introduced: 'Legacy', + deprecated: true, + proxied: false, + }, + WETH9: { + address: '0x4200000000000000000000000000000000000006', + introduced: 'Legacy', + deprecated: false, + proxied: false, + }, + L2CrossDomainMessenger: { + address: '0x4200000000000000000000000000000000000007', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + L2StandardBridge: { + address: '0x4200000000000000000000000000000000000010', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + SequencerFeeVault: { + address: '0x4200000000000000000000000000000000000011', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + OptimismMintableERC20Factory: { + address: '0x4200000000000000000000000000000000000012', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + L1BlockNumber: { + address: '0x4200000000000000000000000000000000000013', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + GasPriceOracle: { + address: '0x420000000000000000000000000000000000000F', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + GovernanceToken: { + address: '0x4200000000000000000000000000000000000042', + introduced: 'Legacy', + deprecated: false, + proxied: false, + }, + L1Block: { + address: '0x4200000000000000000000000000000000000015', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L2ToL1MessagePasser: { + address: '0x4200000000000000000000000000000000000016', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L2ERC721Bridge: { + address: '0x4200000000000000000000000000000000000014', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + OptimismMintableERC721Factory: { + address: '0x4200000000000000000000000000000000000017', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + ProxyAdmin: { + address: '0x4200000000000000000000000000000000000018', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + BaseFeeVault: { + address: '0x4200000000000000000000000000000000000019', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L1FeeVault: { + address: '0x420000000000000000000000000000000000001a', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, +} + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// abisByContractByNetwork +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const abis = { + AddressManager: [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: '_name', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + ], + L1CrossDomainMessenger: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'message', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + ], + L1ERC721Bridge: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + L1StandardBridge: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_messenger', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + L2OutputOracle: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_submissionInterval', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: '_startingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: '_startingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + OptimismMintableERC20Factory: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC20Created', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + OptimismPortal: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Paused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'TransactionDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'WithdrawalProven', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'finalizeWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'latestBlockhash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'proveWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + PortalSender: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, + ], + ProxyAdmin: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, + ], + SystemConfig: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: '_unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: '_unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + name: 'setResourceConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + name: 'setUnsafeBlockSigner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + SystemDictator: [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { + name: 'controller', + internalType: 'address', + type: 'address', + }, + { + name: 'finalOwner', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { + name: 'batcherHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'optimismPortalDynamicConfig', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', + }, + ], + name: 'updateDynamicConfig', + outputs: [], + }, + ], + SystemDictator_goerli: [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { + name: 'controller', + internalType: 'address', + type: 'address', + }, + { + name: 'finalOwner', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { + name: 'batcherHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateL2OutputOracleDynamicConfig', + outputs: [], + }, + ], + MintManager: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + ], + OptimismMintableERC721Factory: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + 'OptimismMintableERC721Factory_optimism-goerli': [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + BaseFeeVault: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_recipient', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + GasPriceOracle: [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + L1Block: [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + L1FeeVault: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_recipient', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + L2CrossDomainMessenger: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'message', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + ], + L2ERC721Bridge: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + L2StandardBridge: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + L2ToL1MessagePasser: [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + SequencerFeeVault: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_recipient', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], +} as const diff --git a/packages/contracts-ts/src/index.ts b/packages/contracts-ts/src/index.ts new file mode 100644 index 000000000000..f87cf0102a14 --- /dev/null +++ b/packages/contracts-ts/src/index.ts @@ -0,0 +1 @@ +export * from './constants' diff --git a/packages/contracts-ts/src/react.spec.tsx b/packages/contracts-ts/src/react.spec.tsx new file mode 100644 index 000000000000..30799d860a0f --- /dev/null +++ b/packages/contracts-ts/src/react.spec.tsx @@ -0,0 +1,87 @@ +import matchers from '@testing-library/jest-dom/matchers' +import { cleanup, waitFor } from '@testing-library/react' +import { renderHook } from '@testing-library/react-hooks' +import { afterEach, expect, test } from 'vitest' +import { useMintManagerOwner } from './react' +import { configureChains, createConfig, WagmiConfig } from 'wagmi' +import * as React from 'react' +import { optimism } from 'viem/chains' +import { jsonRpcProvider } from 'wagmi/providers/jsonRpc' + +expect.extend(matchers) + +afterEach(() => { + cleanup() +}) + +const { publicClient } = configureChains( + [optimism], + [ + jsonRpcProvider({ + rpc: () => ({ + http: + import.meta.env.VITE_RPC_URL_L2_MAINNET ?? + 'https://mainnet.optimism.io', + }), + }), + ] +) + +const config = createConfig({ + publicClient: ({ chainId }) => publicClient({ chainId }), +}) + +const blockNumber = BigInt(106806163) + +test('react hooks should work', async () => { + const hook = renderHook( + () => useMintManagerOwner({ chainId: 10, blockNumber }), + { + wrapper: ({ children }) => ( + {children} + ), + } + ) + await waitFor(() => { + hook.rerender() + if (hook.result.current.error) throw hook.result.current.error + expect(hook.result.current?.data).toBeDefined() + }) + const normalizedResult = { + ...hook.result.current, + internal: { + ...hook.result.current.internal, + dataUpdatedAt: 'SNAPSHOT_TEST_REMOVED!!!', + }, + } + expect(normalizedResult).toMatchInlineSnapshot(` + { + "data": "0x2A82Ae142b2e62Cb7D10b55E323ACB1Cab663a26", + "error": null, + "fetchStatus": "idle", + "internal": { + "dataUpdatedAt": "SNAPSHOT_TEST_REMOVED!!!", + "errorUpdatedAt": 0, + "failureCount": 0, + "isFetchedAfterMount": true, + "isLoadingError": false, + "isPaused": false, + "isPlaceholderData": false, + "isPreviousData": false, + "isRefetchError": false, + "isStale": true, + "remove": [Function], + }, + "isError": false, + "isFetched": true, + "isFetchedAfterMount": true, + "isFetching": false, + "isIdle": false, + "isLoading": false, + "isRefetching": false, + "isSuccess": true, + "refetch": [Function], + "status": "success", + } + `) +}) diff --git a/packages/contracts-ts/src/react.ts b/packages/contracts-ts/src/react.ts new file mode 100644 index 000000000000..0aafff080890 --- /dev/null +++ b/packages/contracts-ts/src/react.ts @@ -0,0 +1,19744 @@ +// Generated by @wagmi/cli@1.3.0 on 7/13/2023 at 5:05:38 PM +import { + useNetwork, + useContractRead, + UseContractReadConfig, + useContractWrite, + Address, + UseContractWriteConfig, + usePrepareContractWrite, + UsePrepareContractWriteConfig, + useContractEvent, + UseContractEventConfig, +} from 'wagmi' +import { + ReadContractResult, + WriteContractMode, + PrepareWriteContractResult, +} from 'wagmi/actions' + +/* eslint-disable */ + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AddressManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: '_name', internalType: 'string', type: 'string', indexed: true }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerAddress = { + 1: '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + 5: '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerConfig = { + address: addressManagerAddress, + abi: addressManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address payable', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2OutputOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC20Created', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Paused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'TransactionDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'WithdrawalProven', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'finalizeWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'proveWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PortalSender +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProxyAdmin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemConfig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'setResourceConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + ], + name: 'setUnsafeBlockSigner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'optimismPortalDynamicConfig', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'phase2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', + }, + ], + name: 'updateDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorAddress = { + 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateL2OutputOracleDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliAddress = { + 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryAddress = { + 10: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliAddress = { + 420: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// React +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"getAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerGetAddress< + TFunctionName extends 'getAddress', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'getAddress', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"owner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof addressManagerABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite( + { + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'renounceOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"setAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerSetAddress< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + 'setAddress' + >['request']['abi'], + 'setAddress', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setAddress' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setAddress' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'setAddress', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof addressManagerABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite( + { + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'transferOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof addressManagerABI, + 'renounceOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"setAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerSetAddress( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'setAddress', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof addressManagerABI, + 'transferOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"AddressSet"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerAddressSetEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + eventName: 'AddressSet', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MESSAGE_VERSION"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMessageVersion< + TFunctionName extends 'MESSAGE_VERSION', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MESSAGE_VERSION', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_CALLDATA_OVERHEAD"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMinGasCalldataOverhead< + TFunctionName extends 'MIN_GAS_CALLDATA_OVERHEAD', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MIN_GAS_CALLDATA_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMinGasDynamicOverheadDenominator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMinGasDynamicOverheadNumerator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"OTHER_MESSENGER"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerOtherMessenger< + TFunctionName extends 'OTHER_MESSENGER', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'OTHER_MESSENGER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"PORTAL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerPortal< + TFunctionName extends 'PORTAL', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'PORTAL', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CALL_OVERHEAD"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayCallOverhead< + TFunctionName extends 'RELAY_CALL_OVERHEAD', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_CALL_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CONSTANT_OVERHEAD"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayConstantOverhead< + TFunctionName extends 'RELAY_CONSTANT_OVERHEAD', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_CONSTANT_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_GAS_CHECK_BUFFER"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayGasCheckBuffer< + TFunctionName extends 'RELAY_GAS_CHECK_BUFFER', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_GAS_CHECK_BUFFER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_RESERVED_GAS"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayReservedGas< + TFunctionName extends 'RELAY_RESERVED_GAS', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_RESERVED_GAS', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"baseGas"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerBaseGas< + TFunctionName extends 'baseGas', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'baseGas', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"failedMessages"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerFailedMessages< + TFunctionName extends 'failedMessages', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'failedMessages', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"messageNonce"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMessageNonce< + TFunctionName extends 'messageNonce', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'messageNonce', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"successfulMessages"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSuccessfulMessages< + TFunctionName extends 'successfulMessages', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'successfulMessages', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"xDomainMessageSender"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerXDomainMessageSender< + TFunctionName extends 'xDomainMessageSender', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'xDomainMessageSender', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'initialize', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + 'initialize', + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayMessage< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + 'relayMessage' + >['request']['abi'], + 'relayMessage', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'relayMessage' + } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'relayMessage', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'relayMessage' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + 'relayMessage', + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'relayMessage', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSendMessage< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + 'sendMessage' + >['request']['abi'], + 'sendMessage', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'sendMessage' + } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'sendMessage', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'sendMessage' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + 'sendMessage', + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'sendMessage', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerInitialize( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'initialize' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerRelayMessage( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'relayMessage' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'relayMessage', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerSendMessage( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'sendMessage' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'sendMessage', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"FailedRelayedMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerFailedRelayedMessageEvent( + config: Omit< + UseContractEventConfig< + typeof l1CrossDomainMessengerABI, + 'FailedRelayedMessage' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'FailedRelayedMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"Initialized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"RelayedMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayedMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'RelayedMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"SentMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSentMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'SentMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"SentMessageExtension1"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSentMessageExtension1Event( + config: Omit< + UseContractEventConfig< + typeof l1CrossDomainMessengerABI, + 'SentMessageExtension1' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'SentMessageExtension1', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"deposits"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeDeposits< + TFunctionName extends 'deposits', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'deposits', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"messenger"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'messenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeOtherBridge< + TFunctionName extends 'otherBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'otherBridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + 'bridgeERC721' + >['request']['abi'], + 'bridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721' + } + : UseContractWriteConfig< + typeof l1Erc721BridgeABI, + 'bridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeBridgeErc721To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + 'bridgeERC721To' + >['request']['abi'], + 'bridgeERC721To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721To' + } + : UseContractWriteConfig< + typeof l1Erc721BridgeABI, + 'bridgeERC721To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721To' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeFinalizeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721' + >['request']['abi'], + 'finalizeBridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } + : UseContractWriteConfig< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + >({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'finalizeBridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function usePrepareL1Erc721BridgeWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function usePrepareL1Erc721BridgeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function usePrepareL1Erc721BridgeBridgeErc721To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721To', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function usePrepareL1Erc721BridgeFinalizeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'finalizeBridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeErc721BridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + eventName: 'ERC721BridgeFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeErc721BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + eventName: 'ERC721BridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"deposits"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeDeposits< + TFunctionName extends 'deposits', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'deposits', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"l2TokenBridge"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeL2TokenBridge< + TFunctionName extends 'l2TokenBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'l2TokenBridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"messenger"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'messenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeBridgeErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'bridgeERC20' + >['request']['abi'], + 'bridgeERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC20' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'bridgeERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC20' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeBridgeErc20To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'bridgeERC20To' + >['request']['abi'], + 'bridgeERC20To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC20To' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'bridgeERC20To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC20To' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeBridgeEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'bridgeETH' + >['request']['abi'], + 'bridgeETH', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'bridgeETH' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeETH' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETH', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeBridgeEthTo< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'bridgeETHTo' + >['request']['abi'], + 'bridgeETHTo', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeETHTo' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'bridgeETHTo', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeETHTo' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETHTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeDepositErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositERC20' + >['request']['abi'], + 'depositERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositERC20' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositERC20' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeDepositErc20To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositERC20To' + >['request']['abi'], + 'depositERC20To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositERC20To' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositERC20To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositERC20To' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeDepositEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositETH' + >['request']['abi'], + 'depositETH', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'depositETH' } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositETH', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositETH' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETH', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETHTo"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeDepositEthTo< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositETHTo' + >['request']['abi'], + 'depositETHTo', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositETHTo' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositETHTo', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositETHTo' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETHTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeFinalizeBridgeErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20' + >['request']['abi'], + 'finalizeBridgeERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC20' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC20' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20', + TMode + >({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeFinalizeBridgeEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH' + >['request']['abi'], + 'finalizeBridgeETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeETH' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeETH' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH', + TMode + >({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeETH', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeERC20Withdrawal"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeFinalizeErc20Withdrawal< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal' + >['request']['abi'], + 'finalizeERC20Withdrawal', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeERC20Withdrawal' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeERC20Withdrawal' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal', + TMode + >({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeERC20Withdrawal', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeETHWithdrawal"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeFinalizeEthWithdrawal< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal' + >['request']['abi'], + 'finalizeETHWithdrawal', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeETHWithdrawal' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeETHWithdrawal' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal', + TMode + >({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeETHWithdrawal', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeBridgeErc20( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeBridgeErc20To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20To', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeBridgeEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeBridgeEthTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETHTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeDepositErc20( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeDepositErc20To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20To', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeDepositEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETHTo"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeDepositEthTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETHTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeFinalizeBridgeErc20( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeFinalizeBridgeEth( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeERC20Withdrawal"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeFinalizeErc20Withdrawal( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeERC20Withdrawal', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeETHWithdrawal"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function usePrepareL1StandardBridgeFinalizeEthWithdrawal( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeETHWithdrawal', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeErc20BridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20BridgeFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeInitiated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeErc20BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20BridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20DepositInitiated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeErc20DepositInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20DepositInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20WithdrawalFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeErc20WithdrawalFinalizedEvent( + config: Omit< + UseContractEventConfig< + typeof l1StandardBridgeABI, + 'ERC20WithdrawalFinalized' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20WithdrawalFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHBridgeFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeEthBridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHBridgeFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHBridgeInitiated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeEthBridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHBridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHDepositInitiated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeEthDepositInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHDepositInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHWithdrawalFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeEthWithdrawalFinalizedEvent( + config: Omit< + UseContractEventConfig< + typeof l1StandardBridgeABI, + 'ETHWithdrawalFinalized' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHWithdrawalFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"CHALLENGER"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleChallenger< + TFunctionName extends 'CHALLENGER', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'CHALLENGER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"FINALIZATION_PERIOD_SECONDS"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleFinalizationPeriodSeconds< + TFunctionName extends 'FINALIZATION_PERIOD_SECONDS', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'FINALIZATION_PERIOD_SECONDS', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"L2_BLOCK_TIME"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleL2BlockTime< + TFunctionName extends 'L2_BLOCK_TIME', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'L2_BLOCK_TIME', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"PROPOSER"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleProposer< + TFunctionName extends 'PROPOSER', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'PROPOSER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"SUBMISSION_INTERVAL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleSubmissionInterval< + TFunctionName extends 'SUBMISSION_INTERVAL', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'SUBMISSION_INTERVAL', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"computeL2Timestamp"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleComputeL2Timestamp< + TFunctionName extends 'computeL2Timestamp', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'computeL2Timestamp', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2Output"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleGetL2Output< + TFunctionName extends 'getL2Output', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'getL2Output', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2OutputAfter"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleGetL2OutputAfter< + TFunctionName extends 'getL2OutputAfter', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'getL2OutputAfter', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2OutputIndexAfter"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleGetL2OutputIndexAfter< + TFunctionName extends 'getL2OutputIndexAfter', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'getL2OutputIndexAfter', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"latestBlockNumber"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleLatestBlockNumber< + TFunctionName extends 'latestBlockNumber', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'latestBlockNumber', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"latestOutputIndex"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleLatestOutputIndex< + TFunctionName extends 'latestOutputIndex', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'latestOutputIndex', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"nextBlockNumber"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleNextBlockNumber< + TFunctionName extends 'nextBlockNumber', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'nextBlockNumber', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"nextOutputIndex"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleNextOutputIndex< + TFunctionName extends 'nextOutputIndex', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'nextOutputIndex', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"startingBlockNumber"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleStartingBlockNumber< + TFunctionName extends 'startingBlockNumber', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'startingBlockNumber', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"startingTimestamp"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleStartingTimestamp< + TFunctionName extends 'startingTimestamp', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'startingTimestamp', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"deleteL2Outputs"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleDeleteL2Outputs< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + 'deleteL2Outputs' + >['request']['abi'], + 'deleteL2Outputs', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'deleteL2Outputs' + } + : UseContractWriteConfig< + typeof l2OutputOracleABI, + 'deleteL2Outputs', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'deleteL2Outputs' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'deleteL2Outputs', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"proposeL2Output"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleProposeL2Output< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + 'proposeL2Output' + >['request']['abi'], + 'proposeL2Output', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'proposeL2Output' + } + : UseContractWriteConfig< + typeof l2OutputOracleABI, + 'proposeL2Output', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'proposeL2Output' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'proposeL2Output', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function usePrepareL2OutputOracleWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"deleteL2Outputs"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function usePrepareL2OutputOracleDeleteL2Outputs( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'deleteL2Outputs', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function usePrepareL2OutputOracleInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"proposeL2Output"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function usePrepareL2OutputOracleProposeL2Output( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'proposeL2Output', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"Initialized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"OutputProposed"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleOutputProposedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + eventName: 'OutputProposed', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"OutputsDeleted"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function useL2OutputOracleOutputsDeletedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + eventName: 'OutputsDeleted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc20FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"BRIDGE"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryBridge< + TFunctionName extends 'BRIDGE', + TSelectData = ReadContractResult< + typeof optimismMintableErc20FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'BRIDGE', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc20FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc20FactoryABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createOptimismMintableERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryCreateOptimismMintableErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20' + >['request']['abi'], + 'createOptimismMintableERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'createOptimismMintableERC20' + } + : UseContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'createOptimismMintableERC20' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20', + TMode + >({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createOptimismMintableERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createStandardL2Token"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryCreateStandardL2Token< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token' + >['request']['abi'], + 'createStandardL2Token', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'createStandardL2Token' + } + : UseContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'createStandardL2Token' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token', + TMode + >({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createStandardL2Token', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function usePrepareOptimismMintableErc20FactoryWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createOptimismMintableERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function usePrepareOptimismMintableErc20FactoryCreateOptimismMintableErc20( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createOptimismMintableERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createStandardL2Token"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function usePrepareOptimismMintableErc20FactoryCreateStandardL2Token( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createStandardL2Token', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `eventName` set to `"OptimismMintableERC20Created"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryOptimismMintableErc20CreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc20FactoryABI, + 'OptimismMintableERC20Created' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + eventName: 'OptimismMintableERC20Created', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `eventName` set to `"StandardL2TokenCreated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryStandardL2TokenCreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc20FactoryABI, + 'StandardL2TokenCreated' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + eventName: 'StandardL2TokenCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"GUARDIAN"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalGuardian< + TFunctionName extends 'GUARDIAN', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'GUARDIAN', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"L2_ORACLE"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalL2Oracle< + TFunctionName extends 'L2_ORACLE', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'L2_ORACLE', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"SYSTEM_CONFIG"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalSystemConfig< + TFunctionName extends 'SYSTEM_CONFIG', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'SYSTEM_CONFIG', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizedWithdrawals"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalFinalizedWithdrawals< + TFunctionName extends 'finalizedWithdrawals', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'finalizedWithdrawals', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"isOutputFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalIsOutputFinalized< + TFunctionName extends 'isOutputFinalized', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'isOutputFinalized', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"l2Sender"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalL2Sender< + TFunctionName extends 'l2Sender', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'l2Sender', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"minimumGasLimit"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalMinimumGasLimit< + TFunctionName extends 'minimumGasLimit', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'minimumGasLimit', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"params"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalParams< + TFunctionName extends 'params', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'params', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"paused"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalPaused< + TFunctionName extends 'paused', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'paused', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"provenWithdrawals"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalProvenWithdrawals< + TFunctionName extends 'provenWithdrawals', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'provenWithdrawals', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"depositTransaction"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalDepositTransaction< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'depositTransaction' + >['request']['abi'], + 'depositTransaction', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositTransaction' + } + : UseContractWriteConfig< + typeof optimismPortalABI, + 'depositTransaction', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositTransaction' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof optimismPortalABI, + 'depositTransaction', + TMode + >({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'depositTransaction', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"donateETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalDonateEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'donateETH' + >['request']['abi'], + 'donateETH', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'donateETH' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'donateETH' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'donateETH', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizeWithdrawalTransaction"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalFinalizeWithdrawalTransaction< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction' + >['request']['abi'], + 'finalizeWithdrawalTransaction', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeWithdrawalTransaction' + } + : UseContractWriteConfig< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeWithdrawalTransaction' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction', + TMode + >({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'finalizeWithdrawalTransaction', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"pause"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalPause< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'pause' + >['request']['abi'], + 'pause', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'pause' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'pause' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'pause', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"proveWithdrawalTransaction"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalProveWithdrawalTransaction< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'proveWithdrawalTransaction' + >['request']['abi'], + 'proveWithdrawalTransaction', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'proveWithdrawalTransaction' + } + : UseContractWriteConfig< + typeof optimismPortalABI, + 'proveWithdrawalTransaction', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'proveWithdrawalTransaction' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof optimismPortalABI, + 'proveWithdrawalTransaction', + TMode + >({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'proveWithdrawalTransaction', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"unpause"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalUnpause< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'unpause' + >['request']['abi'], + 'unpause', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'unpause' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'unpause' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'unpause', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"depositTransaction"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalDepositTransaction( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismPortalABI, + 'depositTransaction' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'depositTransaction', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"donateETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalDonateEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'donateETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizeWithdrawalTransaction"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalFinalizeWithdrawalTransaction( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'finalizeWithdrawalTransaction', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"pause"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalPause( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'pause', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"proveWithdrawalTransaction"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalProveWithdrawalTransaction( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismPortalABI, + 'proveWithdrawalTransaction' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'proveWithdrawalTransaction', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"unpause"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function usePrepareOptimismPortalUnpause( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'unpause', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Initialized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Paused"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalPausedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'Paused', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"TransactionDeposited"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalTransactionDepositedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'TransactionDeposited', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Unpaused"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalUnpausedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'Unpaused', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"WithdrawalFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalWithdrawalFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'WithdrawalFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"WithdrawalProven"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalWithdrawalProvenEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismPortalABI, + address: + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'WithdrawalProven', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link portalSenderABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function usePortalSenderRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof portalSenderAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"PORTAL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function usePortalSenderPortal< + TFunctionName extends 'PORTAL', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof portalSenderAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + functionName: 'PORTAL', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link portalSenderABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function usePortalSenderWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof portalSenderAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof portalSenderABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"donate"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function usePortalSenderDonate< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof portalSenderAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof portalSenderABI, + 'donate' + >['request']['abi'], + 'donate', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'donate' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'donate' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + functionName: 'donate', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link portalSenderABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function usePreparePortalSenderWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof portalSenderAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"donate"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function usePreparePortalSenderDonate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof portalSenderAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + functionName: 'donate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"addressManager"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminAddressManager< + TFunctionName extends 'addressManager', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'addressManager', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"getProxyAdmin"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminGetProxyAdmin< + TFunctionName extends 'getProxyAdmin', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'getProxyAdmin', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"getProxyImplementation"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminGetProxyImplementation< + TFunctionName extends 'getProxyImplementation', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'getProxyImplementation', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"implementationName"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminImplementationName< + TFunctionName extends 'implementationName', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'implementationName', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"isUpgrading"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminIsUpgrading< + TFunctionName extends 'isUpgrading', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'isUpgrading', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"owner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"proxyType"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminProxyType< + TFunctionName extends 'proxyType', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'proxyType', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"changeProxyAdmin"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminChangeProxyAdmin< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'changeProxyAdmin' + >['request']['abi'], + 'changeProxyAdmin', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'changeProxyAdmin' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'changeProxyAdmin', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'changeProxyAdmin' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'changeProxyAdmin', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminSetAddress< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setAddress' + >['request']['abi'], + 'setAddress', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setAddress' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setAddress' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddress', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddressManager"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminSetAddressManager< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setAddressManager' + >['request']['abi'], + 'setAddressManager', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setAddressManager' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'setAddressManager', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setAddressManager' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddressManager', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setImplementationName"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminSetImplementationName< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setImplementationName' + >['request']['abi'], + 'setImplementationName', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setImplementationName' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'setImplementationName', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setImplementationName' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite( + { + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setImplementationName', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setProxyType"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminSetProxyType< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setProxyType' + >['request']['abi'], + 'setProxyType', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setProxyType' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setProxyType' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setProxyType', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setUpgrading"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminSetUpgrading< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setUpgrading' + >['request']['abi'], + 'setUpgrading', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setUpgrading' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setUpgrading' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setUpgrading', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgrade"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminUpgrade< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'upgrade' + >['request']['abi'], + 'upgrade', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'upgrade' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'upgrade' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgrade', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgradeAndCall"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminUpgradeAndCall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'upgradeAndCall' + >['request']['abi'], + 'upgradeAndCall', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'upgradeAndCall' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'upgradeAndCall' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgradeAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"changeProxyAdmin"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminChangeProxyAdmin( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'changeProxyAdmin', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetAddress( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddress', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddressManager"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetAddressManager( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddressManager', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setImplementationName"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetImplementationName( + config: Omit< + UsePrepareContractWriteConfig< + typeof proxyAdminABI, + 'setImplementationName' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setImplementationName', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setProxyType"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetProxyType( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setProxyType', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setUpgrading"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetUpgrading( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setUpgrading', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgrade"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminUpgrade( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgrade', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgradeAndCall"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminUpgradeAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgradeAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proxyAdminABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proxyAdminABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"UNSAFE_BLOCK_SIGNER_SLOT"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigUnsafeBlockSignerSlot< + TFunctionName extends 'UNSAFE_BLOCK_SIGNER_SLOT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'UNSAFE_BLOCK_SIGNER_SLOT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"batcherHash"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigBatcherHash< + TFunctionName extends 'batcherHash', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'batcherHash', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"gasLimit"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigGasLimit< + TFunctionName extends 'gasLimit', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'gasLimit', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"minimumGasLimit"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigMinimumGasLimit< + TFunctionName extends 'minimumGasLimit', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'minimumGasLimit', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"overhead"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigOverhead< + TFunctionName extends 'overhead', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'overhead', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"owner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"resourceConfig"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigResourceConfig< + TFunctionName extends 'resourceConfig', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'resourceConfig', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"scalar"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigScalar< + TFunctionName extends 'scalar', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'scalar', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"unsafeBlockSigner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigUnsafeBlockSigner< + TFunctionName extends 'unsafeBlockSigner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'unsafeBlockSigner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setBatcherHash"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigSetBatcherHash< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'setBatcherHash' + >['request']['abi'], + 'setBatcherHash', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setBatcherHash' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'setBatcherHash', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setBatcherHash' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setBatcherHash', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasConfig"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigSetGasConfig< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'setGasConfig' + >['request']['abi'], + 'setGasConfig', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setGasConfig' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setGasConfig' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasConfig', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasLimit"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigSetGasLimit< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'setGasLimit' + >['request']['abi'], + 'setGasLimit', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setGasLimit' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setGasLimit' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasLimit', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setResourceConfig"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigSetResourceConfig< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'setResourceConfig' + >['request']['abi'], + 'setResourceConfig', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setResourceConfig' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'setResourceConfig', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setResourceConfig' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setResourceConfig', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setUnsafeBlockSigner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigSetUnsafeBlockSigner< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'setUnsafeBlockSigner' + >['request']['abi'], + 'setUnsafeBlockSigner', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setUnsafeBlockSigner' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'setUnsafeBlockSigner', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setUnsafeBlockSigner' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof systemConfigABI, + 'setUnsafeBlockSigner', + TMode + >({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setUnsafeBlockSigner', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setBatcherHash"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigSetBatcherHash( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setBatcherHash', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasConfig"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigSetGasConfig( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasConfig', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasLimit"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigSetGasLimit( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasLimit', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setResourceConfig"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigSetResourceConfig( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setResourceConfig', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setUnsafeBlockSigner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigSetUnsafeBlockSigner( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemConfigABI, + 'setUnsafeBlockSigner' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setUnsafeBlockSigner', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function usePrepareSystemConfigTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"ConfigUpdate"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigConfigUpdateEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + eventName: 'ConfigUpdate', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"Initialized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorExit_1NoReturnStep< + TFunctionName extends 'EXIT_1_NO_RETURN_STEP', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'EXIT_1_NO_RETURN_STEP', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorProxyTransferStep< + TFunctionName extends 'PROXY_TRANSFER_STEP', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'PROXY_TRANSFER_STEP', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"config"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorConfig< + TFunctionName extends 'config', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'config', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"currentStep"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorCurrentStep< + TFunctionName extends 'currentStep', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'currentStep', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"dynamicConfigSet"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorDynamicConfigSet< + TFunctionName extends 'dynamicConfigSet', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'dynamicConfigSet', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exited"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorExited< + TFunctionName extends 'exited', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'exited', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalized"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorFinalized< + TFunctionName extends 'finalized', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'finalized', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorL2OutputOracleDynamicConfig< + TFunctionName extends 'l2OutputOracleDynamicConfig', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'l2OutputOracleDynamicConfig', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorOldL1CrossDomainMessenger< + TFunctionName extends 'oldL1CrossDomainMessenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'oldL1CrossDomainMessenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"optimismPortalDynamicConfig"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorOptimismPortalDynamicConfig< + TFunctionName extends 'optimismPortalDynamicConfig', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'optimismPortalDynamicConfig', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"owner"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorExit1< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'exit1' + >['request']['abi'], + 'exit1', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'exit1' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'exit1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'exit1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorFinalize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'finalize' + >['request']['abi'], + 'finalize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'finalize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'finalize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorPhase1< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'phase1' + >['request']['abi'], + 'phase1', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'phase1' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'phase1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorPhase2< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'phase2' + >['request']['abi'], + 'phase2', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'phase2' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'phase2' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase2', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof systemDictatorABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any +) { + return useContractWrite( + { + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'renounceOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorStep1< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step1' + >['request']['abi'], + 'step1', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step1' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorStep2< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step2' + >['request']['abi'], + 'step2', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step2' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step2' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step2', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorStep3< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step3' + >['request']['abi'], + 'step3', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step3' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step3' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step3', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorStep4< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step4' + >['request']['abi'], + 'step4', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step4' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step4' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step4', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorStep5< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step5' + >['request']['abi'], + 'step5', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step5' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step5' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step5', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof systemDictatorABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any +) { + return useContractWrite( + { + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'transferOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorUpdateDynamicConfig< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'updateDynamicConfig' + >['request']['abi'], + 'updateDynamicConfig', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'updateDynamicConfig' + } + : UseContractWriteConfig< + typeof systemDictatorABI, + 'updateDynamicConfig', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'updateDynamicConfig' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorABI, + 'updateDynamicConfig', + TMode + >({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'updateDynamicConfig', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorExit1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'exit1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorFinalize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'finalize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorPhase1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorPhase2( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase2', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'renounceOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorStep1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorStep2( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step2', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorStep3( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step3', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorStep4( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step4', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorStep5( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step5', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'transferOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function usePrepareSystemDictatorUpdateDynamicConfig( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'updateDynamicConfig' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'updateDynamicConfig', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"Initialized"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliExit_1NoReturnStep< + TFunctionName extends 'EXIT_1_NO_RETURN_STEP', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'EXIT_1_NO_RETURN_STEP', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliProxyTransferStep< + TFunctionName extends 'PROXY_TRANSFER_STEP', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'PROXY_TRANSFER_STEP', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"config"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliConfig< + TFunctionName extends 'config', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'config', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"currentStep"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliCurrentStep< + TFunctionName extends 'currentStep', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'currentStep', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"dynamicConfigSet"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliDynamicConfigSet< + TFunctionName extends 'dynamicConfigSet', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'dynamicConfigSet', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalized"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliFinalized< + TFunctionName extends 'finalized', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'finalized', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliL2OutputOracleDynamicConfig< + TFunctionName extends 'l2OutputOracleDynamicConfig', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'l2OutputOracleDynamicConfig', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliOldL1CrossDomainMessenger< + TFunctionName extends 'oldL1CrossDomainMessenger', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'oldL1CrossDomainMessenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"owner"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite( + { + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliExit1< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'exit1' + >['request']['abi'], + 'exit1', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'exit1' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'exit1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'exit1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliFinalize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'finalize' + >['request']['abi'], + 'finalize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'finalize' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'finalize', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'finalize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'initialize', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorGoerliABI, + 'renounceOwnership', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliStep1< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step1' + >['request']['abi'], + 'step1', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step1' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliStep2< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step2' + >['request']['abi'], + 'step2', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step2' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step2' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step2', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliStep3< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step3' + >['request']['abi'], + 'step3', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step3' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step3' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step3', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliStep4< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step4' + >['request']['abi'], + 'step4', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step4' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step4' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step4', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliStep5< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step5' + >['request']['abi'], + 'step5', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step5' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step5' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step5', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliStep6< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step6' + >['request']['abi'], + 'step6', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step6' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step6' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step6', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorGoerliABI, + 'transferOwnership', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig' + >['request']['abi'], + 'updateL2OutputOracleDynamicConfig', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'updateL2OutputOracleDynamicConfig' + } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'updateL2OutputOracleDynamicConfig' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'updateL2OutputOracleDynamicConfig', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliExit1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'exit1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliFinalize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'finalize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'renounceOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliStep1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliStep2( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step2', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliStep3( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step3', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliStep4( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step4', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliStep5( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step5', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliStep6( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step6', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'transferOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function usePrepareSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'updateL2OutputOracleDynamicConfig', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"Initialized"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export function useSystemDictatorGoerliOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig< + typeof systemDictatorGoerliABI, + 'OwnershipTransferred' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"DENOMINATOR"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerDenominator< + TFunctionName extends 'DENOMINATOR', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'DENOMINATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"MINT_CAP"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerMintCap< + TFunctionName extends 'MINT_CAP', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'MINT_CAP', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"MINT_PERIOD"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerMintPeriod< + TFunctionName extends 'MINT_PERIOD', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'MINT_PERIOD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"governanceToken"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerGovernanceToken< + TFunctionName extends 'governanceToken', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'governanceToken', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mintPermittedAfter"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerMintPermittedAfter< + TFunctionName extends 'mintPermittedAfter', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'mintPermittedAfter', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"owner"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof mintManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof mintManagerABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mint"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerMint< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof mintManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof mintManagerABI, + 'mint' + >['request']['abi'], + 'mint', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'mint' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'mint' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'mint', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof mintManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof mintManagerABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof mintManagerABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof mintManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof mintManagerABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof mintManagerABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"upgrade"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerUpgrade< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof mintManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof mintManagerABI, + 'upgrade' + >['request']['abi'], + 'upgrade', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'upgrade' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'upgrade' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'upgrade', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mint"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerMint( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'mint', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"upgrade"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerUpgrade( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'upgrade', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link mintManagerABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"bridge"`. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryBridge< + TFunctionName extends 'bridge', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'bridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"isOptimismMintableERC721"`. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryIsOptimismMintableErc721< + TFunctionName extends 'isOptimismMintableERC721', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'isOptimismMintableERC721', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"remoteChainId"`. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryRemoteChainId< + TFunctionName extends 'remoteChainId', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'remoteChainId', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryCreateOptimismMintableErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721' + >['request']['abi'], + 'createOptimismMintableERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721', + TMode + >({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'createOptimismMintableERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function usePrepareOptimismMintableErc721FactoryWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function usePrepareOptimismMintableErc721FactoryCreateOptimismMintableErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721' + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'createOptimismMintableERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryEvent< + TEventName extends string +>( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. + * + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismMintableErc721CreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc721FactoryABI, + 'OptimismMintableERC721Created' + >, + 'abi' | 'address' | 'eventName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + eventName: 'OptimismMintableERC721Created', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"BRIDGE"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliBridge< + TFunctionName extends 'BRIDGE', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'BRIDGE', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"REMOTE_CHAIN_ID"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliRemoteChainId< + TFunctionName extends 'REMOTE_CHAIN_ID', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'REMOTE_CHAIN_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"isOptimismMintableERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliIsOptimismMintableErc721< + TFunctionName extends 'isOptimismMintableERC721', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'isOptimismMintableERC721', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721' + >['request']['abi'], + 'createOptimismMintableERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721', + TMode + >({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'createOptimismMintableERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function usePrepareOptimismMintableErc721FactoryOptimismGoerliWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function usePrepareOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721' + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'createOptimismMintableERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliEvent< + TEventName extends string +>( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TEventName + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export function useOptimismMintableErc721FactoryOptimismGoerliOptimismMintableErc721CreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'OptimismMintableERC721Created' + >, + 'abi' | 'address' | 'eventName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + eventName: 'OptimismMintableERC721Created', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"MIN_WITHDRAWAL_AMOUNT"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultMinWithdrawalAmount< + TFunctionName extends 'MIN_WITHDRAWAL_AMOUNT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'MIN_WITHDRAWAL_AMOUNT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"RECIPIENT"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultRecipient< + TFunctionName extends 'RECIPIENT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'RECIPIENT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"totalProcessed"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultTotalProcessed< + TFunctionName extends 'totalProcessed', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'totalProcessed', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof baseFeeVaultAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof baseFeeVaultABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultWithdraw< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof baseFeeVaultAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof baseFeeVaultABI, + 'withdraw' + >['request']['abi'], + 'withdraw', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdraw' + } = {} as any +) { + return useContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function usePrepareBaseFeeVaultWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function usePrepareBaseFeeVaultWithdraw( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__ and `eventName` set to `"Withdrawal"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultWithdrawalEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + eventName: 'Withdrawal', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"baseFee"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleBaseFee< + TFunctionName extends 'baseFee', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'baseFee', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"decimals"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleDecimals< + TFunctionName extends 'decimals', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'decimals', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"gasPrice"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleGasPrice< + TFunctionName extends 'gasPrice', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'gasPrice', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"getL1Fee"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleGetL1Fee< + TFunctionName extends 'getL1Fee', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'getL1Fee', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"getL1GasUsed"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleGetL1GasUsed< + TFunctionName extends 'getL1GasUsed', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'getL1GasUsed', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"l1BaseFee"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleL1BaseFee< + TFunctionName extends 'l1BaseFee', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'l1BaseFee', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"overhead"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleOverhead< + TFunctionName extends 'overhead', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'overhead', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"scalar"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleScalar< + TFunctionName extends 'scalar', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'scalar', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export function useGasPriceOracleVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any +) { + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"DEPOSITOR_ACCOUNT"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockDepositorAccount< + TFunctionName extends 'DEPOSITOR_ACCOUNT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'DEPOSITOR_ACCOUNT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"basefee"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockBasefee< + TFunctionName extends 'basefee', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'basefee', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"batcherHash"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockBatcherHash< + TFunctionName extends 'batcherHash', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'batcherHash', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"hash"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockHash< + TFunctionName extends 'hash', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'hash', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"l1FeeOverhead"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockL1FeeOverhead< + TFunctionName extends 'l1FeeOverhead', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'l1FeeOverhead', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"l1FeeScalar"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockL1FeeScalar< + TFunctionName extends 'l1FeeScalar', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'l1FeeScalar', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"number"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockNumber< + TFunctionName extends 'number', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'number', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"sequenceNumber"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockSequenceNumber< + TFunctionName extends 'sequenceNumber', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'sequenceNumber', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"timestamp"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockTimestamp< + TFunctionName extends 'timestamp', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'timestamp', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1BlockAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"setL1BlockValues"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function useL1BlockSetL1BlockValues< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1BlockAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1BlockABI, + 'setL1BlockValues' + >['request']['abi'], + 'setL1BlockValues', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setL1BlockValues' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setL1BlockValues' + } = {} as any +) { + return useContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'setL1BlockValues', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function usePrepareL1BlockWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"setL1BlockValues"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function usePrepareL1BlockSetL1BlockValues( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'setL1BlockValues', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"MIN_WITHDRAWAL_AMOUNT"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultMinWithdrawalAmount< + TFunctionName extends 'MIN_WITHDRAWAL_AMOUNT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'MIN_WITHDRAWAL_AMOUNT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"RECIPIENT"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultRecipient< + TFunctionName extends 'RECIPIENT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'RECIPIENT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"totalProcessed"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultTotalProcessed< + TFunctionName extends 'totalProcessed', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'totalProcessed', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1FeeVaultAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1FeeVaultABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultWithdraw< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1FeeVaultAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1FeeVaultABI, + 'withdraw' + >['request']['abi'], + 'withdraw', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdraw' + } = {} as any +) { + return useContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function usePrepareL1FeeVaultWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function usePrepareL1FeeVaultWithdraw( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__ and `eventName` set to `"Withdrawal"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultWithdrawalEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + eventName: 'Withdrawal', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MESSAGE_VERSION"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerMessageVersion< + TFunctionName extends 'MESSAGE_VERSION', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'MESSAGE_VERSION', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_CALLDATA_OVERHEAD"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerMinGasCalldataOverhead< + TFunctionName extends 'MIN_GAS_CALLDATA_OVERHEAD', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'MIN_GAS_CALLDATA_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerMinGasDynamicOverheadDenominator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerMinGasDynamicOverheadNumerator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"OTHER_MESSENGER"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerOtherMessenger< + TFunctionName extends 'OTHER_MESSENGER', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'OTHER_MESSENGER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CALL_OVERHEAD"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRelayCallOverhead< + TFunctionName extends 'RELAY_CALL_OVERHEAD', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'RELAY_CALL_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CONSTANT_OVERHEAD"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRelayConstantOverhead< + TFunctionName extends 'RELAY_CONSTANT_OVERHEAD', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'RELAY_CONSTANT_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_GAS_CHECK_BUFFER"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRelayGasCheckBuffer< + TFunctionName extends 'RELAY_GAS_CHECK_BUFFER', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'RELAY_GAS_CHECK_BUFFER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_RESERVED_GAS"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRelayReservedGas< + TFunctionName extends 'RELAY_RESERVED_GAS', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'RELAY_RESERVED_GAS', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"baseGas"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerBaseGas< + TFunctionName extends 'baseGas', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'baseGas', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"failedMessages"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerFailedMessages< + TFunctionName extends 'failedMessages', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'failedMessages', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"l1CrossDomainMessenger"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerL1CrossDomainMessenger< + TFunctionName extends 'l1CrossDomainMessenger', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'l1CrossDomainMessenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"messageNonce"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerMessageNonce< + TFunctionName extends 'messageNonce', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'messageNonce', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"successfulMessages"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerSuccessfulMessages< + TFunctionName extends 'successfulMessages', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'successfulMessages', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"xDomainMessageSender"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerXDomainMessageSender< + TFunctionName extends 'xDomainMessageSender', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'xDomainMessageSender', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2CrossDomainMessengerABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TMode + >({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2CrossDomainMessengerABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'initialize', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + return useContractWrite< + typeof l2CrossDomainMessengerABI, + 'initialize', + TMode + >({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRelayMessage< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2CrossDomainMessengerABI, + 'relayMessage' + >['request']['abi'], + 'relayMessage', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'relayMessage' + } + : UseContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'relayMessage', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'relayMessage' + } = {} as any +) { + return useContractWrite< + typeof l2CrossDomainMessengerABI, + 'relayMessage', + TMode + >({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'relayMessage', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerSendMessage< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2CrossDomainMessengerABI, + 'sendMessage' + >['request']['abi'], + 'sendMessage', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'sendMessage' + } + : UseContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'sendMessage', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'sendMessage' + } = {} as any +) { + return useContractWrite< + typeof l2CrossDomainMessengerABI, + 'sendMessage', + TMode + >({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'sendMessage', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function usePrepareL2CrossDomainMessengerWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function usePrepareL2CrossDomainMessengerInitialize( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'initialize' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function usePrepareL2CrossDomainMessengerRelayMessage( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'relayMessage' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'relayMessage', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function usePrepareL2CrossDomainMessengerSendMessage( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'sendMessage' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'sendMessage', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"FailedRelayedMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerFailedRelayedMessageEvent( + config: Omit< + UseContractEventConfig< + typeof l2CrossDomainMessengerABI, + 'FailedRelayedMessage' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'FailedRelayedMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"Initialized"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"RelayedMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRelayedMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'RelayedMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"SentMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerSentMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'SentMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"SentMessageExtension1"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerSentMessageExtension1Event( + config: Omit< + UseContractEventConfig< + typeof l2CrossDomainMessengerABI, + 'SentMessageExtension1' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'SentMessageExtension1', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"messenger"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'messenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeOtherBridge< + TFunctionName extends 'otherBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'otherBridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'bridgeERC721' + >['request']['abi'], + 'bridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'bridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721' + } = {} as any +) { + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeBridgeErc721To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'bridgeERC721To' + >['request']['abi'], + 'bridgeERC721To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721To' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'bridgeERC721To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721To' + } = {} as any +) { + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeFinalizeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' + >['request']['abi'], + 'finalizeBridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } = {} as any +) { + return useContractWrite< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + >({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'finalizeBridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeBridgeErc721To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721To', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeFinalizeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'finalizeBridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeErc721BridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + eventName: 'ERC721BridgeFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeErc721BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + eventName: 'ERC721BridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"deposits"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeDeposits< + TFunctionName extends 'deposits', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'deposits', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"l1TokenBridge"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeL1TokenBridge< + TFunctionName extends 'l1TokenBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'l1TokenBridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"messenger"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'messenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeBridgeErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'bridgeERC20' + >['request']['abi'], + 'bridgeERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC20' + } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + 'bridgeERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC20' + } = {} as any +) { + return useContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeBridgeErc20To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'bridgeERC20To' + >['request']['abi'], + 'bridgeERC20To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC20To' + } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + 'bridgeERC20To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC20To' + } = {} as any +) { + return useContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeERC20To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeBridgeEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'bridgeETH' + >['request']['abi'], + 'bridgeETH', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'bridgeETH' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeETH' + } = {} as any +) { + return useContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeETH', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeBridgeEthTo< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'bridgeETHTo' + >['request']['abi'], + 'bridgeETHTo', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeETHTo' + } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + 'bridgeETHTo', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeETHTo' + } = {} as any +) { + return useContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeETHTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeFinalizeBridgeErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'finalizeBridgeERC20' + >['request']['abi'], + 'finalizeBridgeERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC20' + } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + 'finalizeBridgeERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC20' + } = {} as any +) { + return useContractWrite< + typeof l2StandardBridgeABI, + 'finalizeBridgeERC20', + TMode + >({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'finalizeBridgeERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeFinalizeBridgeEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'finalizeBridgeETH' + >['request']['abi'], + 'finalizeBridgeETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeETH' + } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + 'finalizeBridgeETH', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeETH' + } = {} as any +) { + return useContractWrite< + typeof l2StandardBridgeABI, + 'finalizeBridgeETH', + TMode + >({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'finalizeBridgeETH', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"finalizeDeposit"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeFinalizeDeposit< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'finalizeDeposit' + >['request']['abi'], + 'finalizeDeposit', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeDeposit' + } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + 'finalizeDeposit', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeDeposit' + } = {} as any +) { + return useContractWrite( + { + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'finalizeDeposit', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeWithdraw< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'withdraw' + >['request']['abi'], + 'withdraw', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdraw' + } = {} as any +) { + return useContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'withdraw', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"withdrawTo"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeWithdrawTo< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2StandardBridgeABI, + 'withdrawTo' + >['request']['abi'], + 'withdrawTo', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'withdrawTo' } + : UseContractWriteConfig< + typeof l2StandardBridgeABI, + 'withdrawTo', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawTo' + } = {} as any +) { + return useContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'withdrawTo', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeBridgeErc20( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeBridgeErc20To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeERC20To', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeBridgeEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeBridgeEthTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'bridgeETHTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeFinalizeBridgeErc20( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2StandardBridgeABI, + 'finalizeBridgeERC20' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'finalizeBridgeERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeFinalizeBridgeEth( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2StandardBridgeABI, + 'finalizeBridgeETH' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'finalizeBridgeETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"finalizeDeposit"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeFinalizeDeposit( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2StandardBridgeABI, + 'finalizeDeposit' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'finalizeDeposit', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeWithdraw( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'withdraw', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `functionName` set to `"withdrawTo"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function usePrepareL2StandardBridgeWithdrawTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + functionName: 'withdrawTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `eventName` set to `"DepositFinalized"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeDepositFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + eventName: 'DepositFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeFinalized"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeErc20BridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + eventName: 'ERC20BridgeFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeInitiated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeErc20BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + eventName: 'ERC20BridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `eventName` set to `"ETHBridgeFinalized"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeEthBridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + eventName: 'ETHBridgeFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `eventName` set to `"ETHBridgeInitiated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeEthBridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + eventName: 'ETHBridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__ and `eventName` set to `"WithdrawalInitiated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function useL2StandardBridgeWithdrawalInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2StandardBridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + eventName: 'WithdrawalInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractRead({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"MESSAGE_VERSION"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserMessageVersion< + TFunctionName extends 'MESSAGE_VERSION', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractRead({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'MESSAGE_VERSION', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"messageNonce"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserMessageNonce< + TFunctionName extends 'messageNonce', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractRead({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'messageNonce', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"sentMessages"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserSentMessages< + TFunctionName extends 'sentMessages', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractRead({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'sentMessages', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractRead({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2ToL1MessagePasserAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2ToL1MessagePasserABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"burn"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserBurn< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2ToL1MessagePasserAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2ToL1MessagePasserABI, + 'burn' + >['request']['abi'], + 'burn', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'burn' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'burn' + } = {} as any +) { + return useContractWrite({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'burn', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"initiateWithdrawal"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserInitiateWithdrawal< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2ToL1MessagePasserAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2ToL1MessagePasserABI, + 'initiateWithdrawal' + >['request']['abi'], + 'initiateWithdrawal', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'initiateWithdrawal' + } + : UseContractWriteConfig< + typeof l2ToL1MessagePasserABI, + 'initiateWithdrawal', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initiateWithdrawal' + } = {} as any +) { + return useContractWrite< + typeof l2ToL1MessagePasserABI, + 'initiateWithdrawal', + TMode + >({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'initiateWithdrawal', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function usePrepareL2ToL1MessagePasserWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"burn"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function usePrepareL2ToL1MessagePasserBurn( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'burn', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `functionName` set to `"initiateWithdrawal"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function usePrepareL2ToL1MessagePasserInitiateWithdrawal( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2ToL1MessagePasserABI, + 'initiateWithdrawal' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + functionName: 'initiateWithdrawal', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractEvent({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `eventName` set to `"MessagePassed"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserMessagePassedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractEvent({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + eventName: 'MessagePassed', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__ and `eventName` set to `"WithdrawerBalanceBurnt"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function useL2ToL1MessagePasserWithdrawerBalanceBurntEvent( + config: Omit< + UseContractEventConfig< + typeof l2ToL1MessagePasserABI, + 'WithdrawerBalanceBurnt' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2ToL1MessagePasserAddress } = {} as any +) { + return useContractEvent({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + eventName: 'WithdrawerBalanceBurnt', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `functionName` set to `"MIN_WITHDRAWAL_AMOUNT"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultMinWithdrawalAmount< + TFunctionName extends 'MIN_WITHDRAWAL_AMOUNT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + functionName: 'MIN_WITHDRAWAL_AMOUNT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `functionName` set to `"RECIPIENT"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultRecipient< + TFunctionName extends 'RECIPIENT', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + functionName: 'RECIPIENT', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `functionName` set to `"l1FeeWallet"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultL1FeeWallet< + TFunctionName extends 'l1FeeWallet', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + functionName: 'l1FeeWallet', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `functionName` set to `"totalProcessed"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultTotalProcessed< + TFunctionName extends 'totalProcessed', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + functionName: 'totalProcessed', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractRead({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof sequencerFeeVaultAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof sequencerFeeVaultABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof sequencerFeeVaultABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultWithdraw< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof sequencerFeeVaultAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof sequencerFeeVaultABI, + 'withdraw' + >['request']['abi'], + 'withdraw', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdraw' + } = {} as any +) { + return useContractWrite({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function usePrepareSequencerFeeVaultWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function usePrepareSequencerFeeVaultWithdraw( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link sequencerFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link sequencerFeeVaultABI}__ and `eventName` set to `"Withdrawal"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export function useSequencerFeeVaultWithdrawalEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof sequencerFeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: sequencerFeeVaultABI, + address: sequencerFeeVaultAddress[420], + eventName: 'Withdrawal', + ...config, + } as UseContractEventConfig) +} diff --git a/packages/contracts-ts/src/vite-env.d.ts b/packages/contracts-ts/src/vite-env.d.ts new file mode 100644 index 000000000000..11f02fe2a006 --- /dev/null +++ b/packages/contracts-ts/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/contracts-ts/tsconfig.json b/packages/contracts-ts/tsconfig.json new file mode 100644 index 000000000000..40f65330817c --- /dev/null +++ b/packages/contracts-ts/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "baseUrl": "./src", + "strict": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "node", + "jsx": "react", + "target": "ESNext", + "noEmit": true + }, + "include": ["./src"] +} diff --git a/packages/contracts-ts/tsup.config.ts b/packages/contracts-ts/tsup.config.ts new file mode 100644 index 000000000000..b3fb66bf0595 --- /dev/null +++ b/packages/contracts-ts/tsup.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + name: '@eth-optimsim/contracts-ts', + entry: ['src/index.ts', 'src/actions.ts', 'src/react.ts'], + outDir: 'dist', + format: ['esm', 'cjs'], + splitting: false, + sourcemap: true, + clean: false, +}) diff --git a/packages/contracts-ts/vite.config.ts b/packages/contracts-ts/vite.config.ts new file mode 100644 index 000000000000..b11d26442e70 --- /dev/null +++ b/packages/contracts-ts/vite.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'vitest/config' + +// @see https://vitest.dev/config/ +export default defineConfig({ + test: { + setupFiles: './setupVitest.ts', + environment: 'jsdom', + coverage: { + provider: 'istanbul', + }, + }, +}) diff --git a/packages/contracts-ts/wagmi.config.ts b/packages/contracts-ts/wagmi.config.ts new file mode 100644 index 000000000000..79a5f4747474 --- /dev/null +++ b/packages/contracts-ts/wagmi.config.ts @@ -0,0 +1,365 @@ +import { ContractConfig, defineConfig, Plugin } from '@wagmi/cli' +import { actions, react } from '@wagmi/cli/plugins' +import glob from 'glob' +import { readFileSync, writeFileSync } from 'fs' +import type { Abi, AbiFunction, Address } from 'abitype' +import { isDeepStrictEqual } from 'util' + +/** + * Predeployed contract addresses + * In future it would be nice to have a json file in contracts bedrock be generated as source of truth + */ +const predeployContracts = { + LegacyMessagePasser: { + address: '0x4200000000000000000000000000000000000000', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + DeployerWhitelist: { + address: '0x4200000000000000000000000000000000000002', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + LegacyERC20ETH: { + address: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', + introduced: 'Legacy', + deprecated: true, + proxied: false, + }, + WETH9: { + address: '0x4200000000000000000000000000000000000006', + introduced: 'Legacy', + deprecated: false, + proxied: false, + }, + L2CrossDomainMessenger: { + address: '0x4200000000000000000000000000000000000007', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + L2StandardBridge: { + address: '0x4200000000000000000000000000000000000010', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + SequencerFeeVault: { + address: '0x4200000000000000000000000000000000000011', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + OptimismMintableERC20Factory: { + address: '0x4200000000000000000000000000000000000012', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + L1BlockNumber: { + address: '0x4200000000000000000000000000000000000013', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + GasPriceOracle: { + address: '0x420000000000000000000000000000000000000F', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + GovernanceToken: { + address: '0x4200000000000000000000000000000000000042', + introduced: 'Legacy', + deprecated: false, + proxied: false, + }, + L1Block: { + address: '0x4200000000000000000000000000000000000015', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L2ToL1MessagePasser: { + address: '0x4200000000000000000000000000000000000016', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L2ERC721Bridge: { + address: '0x4200000000000000000000000000000000000014', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + OptimismMintableERC721Factory: { + address: '0x4200000000000000000000000000000000000017', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + ProxyAdmin: { + address: '0x4200000000000000000000000000000000000018', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + BaseFeeVault: { + address: '0x4200000000000000000000000000000000000019', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L1FeeVault: { + address: '0x420000000000000000000000000000000000001a', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, +} as const + +type DeploymentJson = { + abi: Abi + address: `0x${string}` +} +const chains = { + 1: 'mainnet', + 10: 'optimism-mainnet', + 5: 'goerli', + 420: 'optimism-goerli', +} as const + +if (!glob.sync('node_modules/*').length) { + throw new Error( + 'No node_modules found. Please run `pnpm install` before running this script' + ) +} + +const deployments = { + [1]: glob.sync( + `node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[1]}/*.json` + ), + [10]: glob.sync( + `node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[10]}/*.json` + ), + [5]: glob.sync( + `node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[5]}/*.json` + ), + [420]: glob.sync( + `node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[420]}/*.json` + ), +} + +Object.entries(deployments).forEach(([chain, deploymentFiles]) => { + if (deploymentFiles.length === 0) { + throw new Error(`No deployments found for ${chains[chain]}`) + } +}) + +const getWagmiContracts = (deploymentFiles: string[]) => + deploymentFiles.map((artifactPath) => { + const deployment = JSON.parse( + readFileSync(artifactPath, 'utf8') + ) as DeploymentJson + // There is a wagmi bug we need to filter out the MESSENGER method because it collides with messenger + // @see https://github.com/wagmi-dev/wagmi/issues/2724 + const filterOut = new Set([ + 'MESSENGER', + 'OTHER_BRIDGE', + 'VERSION', + 'DECIMALS', + ]) + const abi = deployment.abi.filter( + (item) => !filterOut.has((item as AbiFunction).name) + ) + const contractConfig = { + abi, + name: artifactPath.split('/').reverse()[0]?.replace('.json', ''), + address: deployment.address, + } satisfies ContractConfig + if (!contractConfig.name) { + throw new Error( + 'Unable to identify the name of the contract at ' + artifactPath + ) + } + return contractConfig + }) + +/** + * Returns the contracts for the wagmi cli config + */ +const getContractConfigs = () => { + const contracts = { + 1: getWagmiContracts(deployments[1]), + 10: getWagmiContracts(deployments[10]), + 5: getWagmiContracts(deployments[5]), + 420: getWagmiContracts(deployments[420]), + } + + const allContracts = Object.values(contracts).flat() + + const config: ContractConfig[] = [] + + // this for loop is not terribly efficient but seems fast enough for the scale here + for (const contract of allContracts) { + // we will only process the implementation ABI but will use teh proxy addresses for deployments + const isProxy = contract.name.endsWith('Proxy') + // once we see the first deployment of a contract we will process all networks all at once + const alreadyProcessedContract = config.find( + (c) => c.name === contract.name + ) + if (isProxy || alreadyProcessedContract) { + continue + } + + const implementations = { + // @warning Later code assumes mainnet is first!!! + [1]: contracts[1].find((c) => c.name === contract.name), + // @warning Later code assumes mainnet is first!!! + [10]: contracts[10].find((c) => c.name === contract.name), + [5]: contracts[5].find((c) => c.name === contract.name), + [420]: contracts[420].find((c) => c.name === contract.name), + } + const maybeProxyName = contract.name + 'Proxy' + const proxies = { + // @warning Later code assumes mainnet is first!!! + [1]: contracts[1].find((c) => c.name === maybeProxyName), + // @warning Later code assumes mainnet is first!!! + [10]: contracts[10].find((c) => c.name === maybeProxyName), + [5]: contracts[5].find((c) => c.name === maybeProxyName), + [420]: contracts[420].find((c) => c.name === maybeProxyName), + } + + const predeploy = predeployContracts[ + contract.name as keyof typeof predeployContracts + ] as { address: Address } | undefined + + // If the contract has different abis on different networks we don't want to group them as a single abi + const isContractUnique = !Object.values(implementations).some( + (implementation) => + implementation && !isDeepStrictEqual(implementation.abi, contract.abi) + ) + if (!isContractUnique) { + Object.entries(implementations) + .filter(([_, implementation]) => implementation) + .forEach(([chain, implementation], i) => { + if (implementation) { + // make the first one cannonical. This will be mainnet or op mainnet if they exist + const name = + i === 0 ? contract.name : `${contract.name}_${chains[chain]}` + const nextConfig = { + abi: implementation.abi, + name, + address: { + [Number.parseInt(chain)]: + predeploy?.address ?? + proxies[chain]?.address ?? + implementation?.address, + }, // predeploy?.address ?? proxies[chain]?.address ?? implementation?.address + } satisfies ContractConfig + config.push(nextConfig) + } + }) + continue + } + + const wagmiConfig = { + abi: contract.abi, + name: contract.name, + address: {}, + } satisfies ContractConfig + + Object.entries(implementations).forEach(([chain, proxy]) => { + if (proxy) { + wagmiConfig.address[chain] = + predeploy?.address ?? proxy.address ?? contract.address + } + }) + // if proxies exist overwrite the address with the proxy address + Object.entries(proxies).forEach(([chain, proxy]) => { + if (proxy) { + wagmiConfig.address[chain] = predeploy?.address ?? proxy.address + } + }) + + config.push(wagmiConfig) + } + + return config +} + +/** + * This plugin will create a addresses mapping from contract name to address + */ +const addressesByContractByNetworkPlugin: Plugin = { + name: 'addressesByContractByNetwork', + run: async ({ contracts }) => { + const addresses = Object.fromEntries( + contracts.map((contract) => [contract.name, contract.address ?? {}]) + ) + // write to json file so it's easy to audit in prs relative to the generated file diff + writeFileSync('./addresses.json', JSON.stringify(addresses, null, 2)) + return { + content: [ + `export const addresses = ${JSON.stringify(addresses)} as const`, + `export const predeploys = ${JSON.stringify(predeployContracts)}`, + ].join('\n'), + } + }, +} + +/** + * This plugin will create an abi mapping from contract name to abi + */ +const abiPlugin: Plugin = { + name: 'abisByContractByNetwork', + run: async ({ contracts }) => { + const abis = Object.fromEntries( + contracts.map((contract) => [contract.name, contract.abi]) + ) + // write to json file so it's easy to audit in prs relative to the generated file diff + writeFileSync('./abis.json', JSON.stringify(abis, null, 2)) + return { + content: `export const abis = ${JSON.stringify(abis)} as const`, + } + }, +} + +/** + * This plugin adds an eslint ignore to the generated code + */ +const eslintIgnorePlugin: Plugin = { + name: 'eslintIgnore', + run: async () => { + return { + prepend: `/* eslint-disable */`, + content: ``, + } + }, +} + +const contracts = getContractConfigs() +// @see https://wagmi.sh/cli +export default defineConfig([ + { + out: 'src/constants.ts', + contracts, + plugins: [ + eslintIgnorePlugin, + addressesByContractByNetworkPlugin, + abiPlugin, + ], + }, + { + out: 'src/actions.ts', + contracts, + plugins: [eslintIgnorePlugin, actions()], + }, + { + out: 'src/react.ts', + contracts, + plugins: [eslintIgnorePlugin, react()], + }, +]) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f11ab9994d3..ee66eb915fab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -290,6 +290,73 @@ importers: specifier: ^4.9.3 version: 4.9.3 + packages/contracts-ts: + dependencies: + '@testing-library/react': + specifier: ^14.0.0 + version: 14.0.0(react-dom@18.2.0)(react@18.2.0) + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + viem: + specifier: ^0.3.30 + version: 0.3.30(typescript@4.9.3)(zod@3.20.2) + wagmi: + specifier: '>1.0.0' + version: 1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + devDependencies: + '@eth-optimism/contracts-bedrock': + specifier: workspace:0.15.0 + version: link:../contracts-bedrock + '@testing-library/jest-dom': + specifier: ^5.16.5 + version: 5.16.5 + '@testing-library/react-hooks': + specifier: ^8.0.1 + version: 8.0.1(react-dom@18.2.0)(react@18.2.0) + '@types/glob': + specifier: ^8.1.0 + version: 8.1.0 + '@vitest/coverage-istanbul': + specifier: ^0.33.0 + version: 0.33.0(vitest@0.33.0) + '@wagmi/cli': + specifier: ^1.3.0 + version: 1.3.0(@wagmi/core@1.3.7)(typescript@4.9.3)(wagmi@1.0.1) + '@wagmi/core': + specifier: ^1.3.7 + version: 1.3.7(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + abitype: + specifier: ^0.9.0 + version: 0.9.0(typescript@4.9.3) + glob: + specifier: ^7.2.3 + version: 7.2.3 + isomorphic-fetch: + specifier: ^3.0.0 + version: 3.0.0 + jest-dom: + specifier: link:@types/@testing-library/jest-dom + version: link:@types/@testing-library/jest-dom + jsdom: + specifier: ^22.1.0 + version: 22.1.0 + tsup: + specifier: ^7.1.0 + version: 7.1.0(typescript@4.9.3) + typescript: + specifier: ^4.9.3 + version: 4.9.3 + vite: + specifier: ^4.4.3 + version: 4.4.3(@types/node@12.20.20) + vitest: + specifier: ^0.33.0 + version: 0.33.0(jsdom@22.1.0) + packages/core-utils: dependencies: '@ethersproject/abi': @@ -496,9 +563,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + /@adobe/css-tools@4.2.0: + resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} + dev: true + /@adraffy/ens-normalize@1.9.0: resolution: {integrity: sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ==} - dev: true /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} @@ -508,13 +578,6 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@babel/code-frame@7.16.7: - resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.5 - dev: true - /@babel/code-frame@7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} @@ -563,15 +626,6 @@ packages: semver: 6.3.0 dev: true - /@babel/generator@7.18.2: - resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - '@jridgewell/gen-mapping': 0.3.3 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.22.5: resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} engines: {node: '>=6.9.0'} @@ -722,14 +776,6 @@ packages: resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.18.4 - dev: true - - /@babel/parser@7.18.4: - resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==} - engines: {node: '>=6.0.0'} - hasBin: true dependencies: '@babel/types': 7.22.5 dev: true @@ -754,7 +800,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 - dev: false /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} @@ -769,14 +814,14 @@ packages: resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.18.2 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 '@babel/helper-environment-visitor': 7.18.2 '@babel/helper-function-name': 7.17.9 '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.18.4 - '@babel/types': 7.18.4 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -801,14 +846,6 @@ packages: - supports-color dev: true - /@babel/types@7.18.4: - resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.5 - to-fast-properties: 2.0.0 - dev: true - /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} @@ -1030,7 +1067,7 @@ packages: commander: 2.20.3 debug: 4.3.4(supports-color@8.1.1) execa: 1.0.0 - glob: 7.2.0 + glob: 7.2.3 graceful-fs: 4.2.11 js-yaml: 3.14.1 json5: 2.2.3 @@ -1050,6 +1087,33 @@ packages: - typescript dev: false + /@coinbase/wallet-sdk@3.7.1: + resolution: {integrity: sha512-LjyoDCB+7p0waQXfK+fUgcAs3Ezk6S6e+LYaoFjpJ6c9VTop3NyZF40Pi7df4z7QJohCwzuIDjz0Rhtig6Y7Pg==} + engines: {node: '>= 10.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + '@solana/web3.js': 1.78.0 + bind-decorator: 1.0.11 + bn.js: 5.2.1 + buffer: 6.0.3 + clsx: 1.2.1 + eth-block-tracker: 6.1.0 + eth-json-rpc-filters: 5.1.0 + eth-rpc-errors: 4.0.2 + json-rpc-engine: 6.1.0 + keccak: 3.0.2 + preact: 10.16.0 + qs: 6.11.2 + rxjs: 6.6.7 + sha.js: 2.4.11 + stream-browserify: 3.0.0 + util: 0.12.4 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1127,8 +1191,8 @@ packages: get-tsconfig: 4.4.0 dev: true - /@esbuild/android-arm64@0.16.17: - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + /@esbuild/android-arm64@0.18.13: + resolution: {integrity: sha512-j7NhycJUoUAG5kAzGf4fPWfd17N6SM3o1X6MlXVqfHvs2buFraCJzos9vbeWjLxOyBKHyPOnuCuipbhvbYtTAg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1136,6 +1200,15 @@ packages: dev: true optional: true + /@esbuild/android-arm@0.15.13: + resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.15.18: resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} engines: {node: '>=12'} @@ -1145,8 +1218,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.16.17: - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + /@esbuild/android-arm@0.18.13: + resolution: {integrity: sha512-KwqFhxRFMKZINHzCqf8eKxE0XqWlAVPRxwy6rc7CbVFxzUWB2sA/s3hbMZeemPdhN3fKBkqOaFhTbS8xJXYIWQ==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1154,8 +1227,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.16.17: - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + /@esbuild/android-x64@0.18.13: + resolution: {integrity: sha512-M2eZkRxR6WnWfVELHmv6MUoHbOqnzoTVSIxgtsyhm/NsgmL+uTmag/VVzdXvmahak1I6sOb1K/2movco5ikDJg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1163,8 +1236,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.16.17: - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + /@esbuild/darwin-arm64@0.18.13: + resolution: {integrity: sha512-f5goG30YgR1GU+fxtaBRdSW3SBG9pZW834Mmhxa6terzcboz7P2R0k4lDxlkP7NYRIIdBbWp+VgwQbmMH4yV7w==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1172,8 +1245,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.16.17: - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + /@esbuild/darwin-x64@0.18.13: + resolution: {integrity: sha512-RIrxoKH5Eo+yE5BtaAIMZaiKutPhZjw+j0OCh8WdvKEKJQteacq0myZvBDLU+hOzQOZWJeDnuQ2xgSScKf1Ovw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1181,8 +1254,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.16.17: - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} + /@esbuild/freebsd-arm64@0.18.13: + resolution: {integrity: sha512-AfRPhHWmj9jGyLgW/2FkYERKmYR+IjYxf2rtSLmhOrPGFh0KCETFzSjx/JX/HJnvIqHt/DRQD/KAaVsUKoI3Xg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1190,8 +1263,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.16.17: - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + /@esbuild/freebsd-x64@0.18.13: + resolution: {integrity: sha512-pGzWWZJBInhIgdEwzn8VHUBang8UvFKsvjDkeJ2oyY5gZtAM6BaxK0QLCuZY+qoj/nx/lIaItH425rm/hloETA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1199,8 +1272,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.16.17: - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + /@esbuild/linux-arm64@0.18.13: + resolution: {integrity: sha512-hCzZbVJEHV7QM77fHPv2qgBcWxgglGFGCxk6KfQx6PsVIdi1u09X7IvgE9QKqm38OpkzaAkPnnPqwRsltvLkIQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1208,8 +1281,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.16.17: - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + /@esbuild/linux-arm@0.18.13: + resolution: {integrity: sha512-4iMxLRMCxGyk7lEvkkvrxw4aJeC93YIIrfbBlUJ062kilUUnAiMb81eEkVvCVoh3ON283ans7+OQkuy1uHW+Hw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1217,8 +1290,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.16.17: - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + /@esbuild/linux-ia32@0.18.13: + resolution: {integrity: sha512-I3OKGbynl3AAIO6onXNrup/ttToE6Rv2XYfFgLK/wnr2J+1g+7k4asLrE+n7VMhaqX+BUnyWkCu27rl+62Adug==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1226,6 +1299,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64@0.15.13: + resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.15.18: resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} engines: {node: '>=12'} @@ -1235,8 +1317,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.16.17: - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} + /@esbuild/linux-loong64@0.18.13: + resolution: {integrity: sha512-8pcKDApAsKc6WW51ZEVidSGwGbebYw2qKnO1VyD8xd6JN0RN6EUXfhXmDk9Vc4/U3Y4AoFTexQewQDJGsBXBpg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1244,8 +1326,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.16.17: - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} + /@esbuild/linux-mips64el@0.18.13: + resolution: {integrity: sha512-6GU+J1PLiVqWx8yoCK4Z0GnfKyCGIH5L2KQipxOtbNPBs+qNDcMJr9euxnyJ6FkRPyMwaSkjejzPSISD9hb+gg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1253,8 +1335,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.16.17: - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + /@esbuild/linux-ppc64@0.18.13: + resolution: {integrity: sha512-pfn/OGZ8tyR8YCV7MlLl5hAit2cmS+j/ZZg9DdH0uxdCoJpV7+5DbuXrR+es4ayRVKIcfS9TTMCs60vqQDmh+w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1262,8 +1344,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.16.17: - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + /@esbuild/linux-riscv64@0.18.13: + resolution: {integrity: sha512-aIbhU3LPg0lOSCfVeGHbmGYIqOtW6+yzO+Nfv57YblEK01oj0mFMtvDJlOaeAZ6z0FZ9D13oahi5aIl9JFphGg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1271,8 +1353,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.16.17: - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + /@esbuild/linux-s390x@0.18.13: + resolution: {integrity: sha512-Pct1QwF2sp+5LVi4Iu5Y+6JsGaV2Z2vm4O9Dd7XZ5tKYxEHjFtb140fiMcl5HM1iuv6xXO8O1Vrb1iJxHlv8UA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1280,8 +1362,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.16.17: - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + /@esbuild/linux-x64@0.18.13: + resolution: {integrity: sha512-zTrIP0KzYP7O0+3ZnmzvUKgGtUvf4+piY8PIO3V8/GfmVd3ZyHJGz7Ht0np3P1wz+I8qJ4rjwJKqqEAbIEPngA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1289,8 +1371,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.16.17: - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + /@esbuild/netbsd-x64@0.18.13: + resolution: {integrity: sha512-I6zs10TZeaHDYoGxENuksxE1sxqZpCp+agYeW039yqFwh3MgVvdmXL5NMveImOC6AtpLvE4xG5ujVic4NWFIDQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1298,8 +1380,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.16.17: - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + /@esbuild/openbsd-x64@0.18.13: + resolution: {integrity: sha512-W5C5nczhrt1y1xPG5bV+0M12p2vetOGlvs43LH8SopQ3z2AseIROu09VgRqydx5qFN7y9qCbpgHLx0kb0TcW7g==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1307,8 +1389,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.16.17: - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + /@esbuild/sunos-x64@0.18.13: + resolution: {integrity: sha512-X/xzuw4Hzpo/yq3YsfBbIsipNgmsm8mE/QeWbdGdTTeZ77fjxI2K0KP3AlhZ6gU3zKTw1bKoZTuKLnqcJ537qw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1316,8 +1398,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.16.17: - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + /@esbuild/win32-arm64@0.18.13: + resolution: {integrity: sha512-4CGYdRQT/ILd+yLLE5i4VApMPfGE0RPc/wFQhlluDQCK09+b4JDbxzzjpgQqTPrdnP7r5KUtGVGZYclYiPuHrw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1325,8 +1407,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.16.17: - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + /@esbuild/win32-ia32@0.18.13: + resolution: {integrity: sha512-D+wKZaRhQI+MUGMH+DbEr4owC2D7XnF+uyGiZk38QbgzLcofFqIOwFs7ELmIeU45CQgfHNy9Q+LKW3cE8g37Kg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1334,8 +1416,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.16.17: - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} + /@esbuild/win32-x64@0.18.13: + resolution: {integrity: sha512-iVl6lehAfJS+VmpF3exKpNQ8b0eucf5VWfzR8S7xFve64NBNz2jPUgx1X93/kfnkfgP737O+i1k54SVQS7uVZA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1487,7 +1569,7 @@ packages: dependencies: '@ensdomains/ens': 0.4.5 '@ensdomains/resolver': 0.2.4 - ethers: 5.7.1 + ethers: 5.7.2 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -1810,7 +1892,6 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: false /@ethersproject/random@5.7.0: resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} @@ -1986,11 +2067,30 @@ packages: engines: {node: '>=8'} dev: true - /@jest/schemas@29.4.3: - resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} + /@jest/expect-utils@29.6.1: + resolution: {integrity: sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.4.3 + dev: true + + /@jest/schemas@29.6.0: + resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jest/types@29.6.1: + resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@sinclair/typebox': 0.25.24 + '@jest/schemas': 29.6.0 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 12.20.55 + '@types/yargs': 17.0.24 + chalk: 4.1.2 dev: true /@jridgewell/gen-mapping@0.3.3: @@ -2034,6 +2134,35 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@json-rpc-tools/provider@1.7.6: + resolution: {integrity: sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + '@json-rpc-tools/utils': 1.7.6 + axios: 0.21.4(debug@4.3.4) + safe-json-utils: 1.1.1 + ws: 7.5.3 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + /@json-rpc-tools/types@1.7.6: + resolution: {integrity: sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + keyvaluestorage-interface: 1.0.0 + + /@json-rpc-tools/utils@1.7.6: + resolution: {integrity: sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + '@json-rpc-tools/types': 1.7.6 + '@pedrouid/environment': 1.0.1 + + /@ledgerhq/connect-kit-loader@1.1.0: + resolution: {integrity: sha512-HUy12FEczoWY2FPubnsm1uOA8tkVWc0j90i47suThV3C9NL2xx69ZAIEU3Ytzs2bwLek9S1Q2S1VQJvA+3Ygkg==} + /@lerna/child-process@6.6.2: resolution: {integrity: sha512-QyKIWEnKQFnYu2ey+SAAm1A5xjzJLJJj3bhIZd3QKyXKKjaJ0hlxam/OsWSltxTNbcyH1jRJjC6Cxv31usv0Ag==} engines: {node: ^14.17.0 || >=16.0.0} @@ -2138,6 +2267,14 @@ packages: - supports-color dev: true + /@lit-labs/ssr-dom-shim@1.1.1: + resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==} + + /@lit/reactive-element@1.6.2: + resolution: {integrity: sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.1.1 + /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: @@ -2169,15 +2306,80 @@ packages: tweetnacl-util: 0.15.1 dev: true + /@metamask/safe-event-emitter@2.0.0: + resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} + + /@metamask/utils@3.6.0: + resolution: {integrity: sha512-9cIRrfkWvHblSiNDVXsjivqa9Ak0RYo/1H6tqTqTbAx+oBK2Sva0lWDHxGchOqA7bySGUJKAWSNJvH6gdHZ0gQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@types/debug': 4.1.8 + debug: 4.3.4(supports-color@8.1.1) + semver: 7.5.3 + superstruct: 1.0.3 + transitivePeerDependencies: + - supports-color + + /@motionone/animation@10.15.1: + resolution: {integrity: sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==} + dependencies: + '@motionone/easing': 10.15.1 + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + tslib: 2.6.0 + + /@motionone/dom@10.16.2: + resolution: {integrity: sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg==} + dependencies: + '@motionone/animation': 10.15.1 + '@motionone/generators': 10.15.1 + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + hey-listen: 1.0.8 + tslib: 2.6.0 + + /@motionone/easing@10.15.1: + resolution: {integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==} + dependencies: + '@motionone/utils': 10.15.1 + tslib: 2.6.0 + + /@motionone/generators@10.15.1: + resolution: {integrity: sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==} + dependencies: + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + tslib: 2.6.0 + + /@motionone/svelte@10.16.2: + resolution: {integrity: sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==} + dependencies: + '@motionone/dom': 10.16.2 + tslib: 2.6.0 + + /@motionone/types@10.15.1: + resolution: {integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==} + + /@motionone/utils@10.15.1: + resolution: {integrity: sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==} + dependencies: + '@motionone/types': 10.15.1 + hey-listen: 1.0.8 + tslib: 2.6.0 + + /@motionone/vue@10.16.2: + resolution: {integrity: sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==} + dependencies: + '@motionone/dom': 10.16.2 + tslib: 2.6.0 + /@noble/curves@1.0.0: resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==} dependencies: '@noble/hashes': 1.3.0 - dev: true /@noble/hashes@1.3.0: resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} - dev: true /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2706,7 +2908,7 @@ packages: '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 is-plain-object: 5.0.0 - node-fetch: 2.6.7 + node-fetch: 2.6.12 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding @@ -2759,6 +2961,9 @@ packages: node-gyp-build: 4.6.0 dev: true + /@pedrouid/environment@1.0.1: + resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2807,9 +3012,71 @@ packages: - supports-color dev: true + /@safe-global/safe-apps-provider@0.15.2: + resolution: {integrity: sha512-BaoGAuY7h6jLBL7P+M6b7hd+1QfTv8uMyNF3udhiNUwA0XwfzH2ePQB13IEV3Mn7wdcIMEEUDS5kHbtAsj60qQ==} + dependencies: + '@safe-global/safe-apps-sdk': 7.9.0 + events: 3.3.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + /@safe-global/safe-apps-provider@0.17.1(typescript@4.9.3): + resolution: {integrity: sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ==} + dependencies: + '@safe-global/safe-apps-sdk': 8.0.0(typescript@4.9.3) + events: 3.3.0 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: true + + /@safe-global/safe-apps-sdk@7.11.0: + resolution: {integrity: sha512-RDamzPM1Lhhiiz0O+Dn6FkFqIh47jmZX+HCV/BBnBBOSKfBJE//IGD3+02zMgojXHTikQAburdPes9qmH1SA1A==} + dependencies: + '@safe-global/safe-gateway-typescript-sdk': 3.7.3 + ethers: 5.7.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + /@safe-global/safe-apps-sdk@7.9.0: + resolution: {integrity: sha512-S2EI+JL8ocSgE3uGNaDZCzKmwfhtxXZFDUP76vN0FeaY35itFMyi8F0Vhxu0XnZm3yLzJE3tp5px6GhuQFLU6w==} + dependencies: + '@safe-global/safe-gateway-typescript-sdk': 3.7.3 + ethers: 5.7.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + /@safe-global/safe-apps-sdk@8.0.0(typescript@4.9.3): + resolution: {integrity: sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw==} + dependencies: + '@safe-global/safe-gateway-typescript-sdk': 3.7.3 + viem: 1.3.0(typescript@4.9.3)(zod@3.21.4) + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: true + + /@safe-global/safe-gateway-typescript-sdk@3.7.3: + resolution: {integrity: sha512-O6JCgXNZWG0Vv8FnOEjKfcbsP0WxGvoPJk5ufqUrsyBlHup16It6oaLnn+25nXFLBZOHI1bz8429JlqAc2t2hg==} + dependencies: + cross-fetch: 3.1.8 + transitivePeerDependencies: + - encoding + /@scure/base@1.1.1: resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} - dev: true /@scure/bip32@1.3.0: resolution: {integrity: sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==} @@ -2817,14 +3084,12 @@ packages: '@noble/curves': 1.0.0 '@noble/hashes': 1.3.0 '@scure/base': 1.1.1 - dev: true /@scure/bip39@1.2.0: resolution: {integrity: sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==} dependencies: '@noble/hashes': 1.3.0 '@scure/base': 1.1.1 - dev: true /@sentry/core@5.30.0: resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} @@ -2894,7 +3159,7 @@ packages: '@sentry/types': 5.30.0 '@sentry/utils': 5.30.0 cookie: 0.4.1 - https-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 lru_map: 0.3.3 tslib: 1.14.1 transitivePeerDependencies: @@ -2982,8 +3247,8 @@ packages: - supports-color dev: true - /@sinclair/typebox@0.25.24: - resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true /@sindresorhus/is@0.14.0: @@ -3004,6 +3269,36 @@ packages: '@sinonjs/commons': 1.8.3 dev: true + /@solana/buffer-layout@4.0.1: + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + dependencies: + buffer: 6.0.3 + + /@solana/web3.js@1.78.0: + resolution: {integrity: sha512-CSjCjo+RELJ5puoZALfznN5EF0YvL1V8NQrQYovsdjE1lCV6SqbKAIZD0+9LlqCBoa1ibuUaR7G2SooYzvzmug==} + dependencies: + '@babel/runtime': 7.22.5 + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.3.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.0 + node-fetch: 2.6.12 + rpc-websockets: 7.5.1 + superstruct: 0.14.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + /@solidity-parser/parser@0.13.2: resolution: {integrity: sha512-RwHnpRnfrnD2MSPveYoPh8nhofEvX7fgjHk1Oq+NNvCcLx4r1js91CO9o+F/F3fBzOCyvm8kKRTriFICX/odWw==} dependencies: @@ -3022,81 +3317,286 @@ packages: antlr4ts: 0.5.0-alpha.4 dev: true - /@szmarczak/http-timer@1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} + /@stablelib/aead@1.0.1: + resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==} + + /@stablelib/binary@1.0.1: + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} dependencies: - defer-to-connect: 1.1.3 - dev: true - optional: true + '@stablelib/int': 1.0.1 - /@textlint/ast-node-types@12.2.1: - resolution: {integrity: sha512-NXYza6aG1+LdZ4g83gjRhDht+gdrTjJYkdcQhpvzNCtTar/sVpaykkauRcAKLhkIWrQpfb311pfMlU6qNDW76Q==} - dev: true + /@stablelib/bytes@1.0.1: + resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} - /@textlint/markdown-to-ast@12.2.1: - resolution: {integrity: sha512-p+LlVcrgHnSNEWWflYU412uu+v4Cejs6hmI4SgZCheNg4u7Ik78aKgpe4jT5BhjLSBZ/KP6IrJxtCUOoJIUWmQ==} + /@stablelib/chacha20poly1305@1.0.1: + resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==} dependencies: - '@textlint/ast-node-types': 12.2.1 - debug: 4.3.4(supports-color@8.1.1) - remark-footnotes: 3.0.0 - remark-frontmatter: 3.0.0 - remark-gfm: 1.0.0 - remark-parse: 9.0.0 - traverse: 0.6.6 - unified: 9.2.2 - transitivePeerDependencies: - - supports-color - dev: true + '@stablelib/aead': 1.0.1 + '@stablelib/binary': 1.0.1 + '@stablelib/chacha': 1.0.1 + '@stablelib/constant-time': 1.0.1 + '@stablelib/poly1305': 1.0.1 + '@stablelib/wipe': 1.0.1 - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true + /@stablelib/chacha@1.0.1: + resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 - /@tsconfig/node10@1.0.8: - resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} - dev: true + /@stablelib/constant-time@1.0.1: + resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==} - /@tsconfig/node12@1.0.9: - resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} - dev: true + /@stablelib/ed25519@1.0.3: + resolution: {integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==} + dependencies: + '@stablelib/random': 1.0.2 + '@stablelib/sha512': 1.0.1 + '@stablelib/wipe': 1.0.1 - /@tsconfig/node14@1.0.1: - resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} - dev: true + /@stablelib/hash@1.0.1: + resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==} - /@tsconfig/node16@1.0.2: - resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} - dev: true + /@stablelib/hkdf@1.0.1: + resolution: {integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==} + dependencies: + '@stablelib/hash': 1.0.1 + '@stablelib/hmac': 1.0.1 + '@stablelib/wipe': 1.0.1 - /@tufjs/canonical-json@1.0.0: - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true + /@stablelib/hmac@1.0.1: + resolution: {integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==} + dependencies: + '@stablelib/constant-time': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 - /@tufjs/models@1.0.4: - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /@stablelib/int@1.0.1: + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + + /@stablelib/keyagreement@1.0.1: + resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} dependencies: - '@tufjs/canonical-json': 1.0.0 - minimatch: 9.0.2 - dev: true + '@stablelib/bytes': 1.0.1 - /@typechain/ethers-v5@2.0.0(ethers@5.7.1)(typechain@3.0.0): - resolution: {integrity: sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw==} - peerDependencies: - ethers: ^5.0.0 - typechain: ^3.0.0 + /@stablelib/poly1305@1.0.1: + resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==} dependencies: - ethers: 5.7.1 - typechain: 3.0.0(typescript@4.9.5) - dev: true + '@stablelib/constant-time': 1.0.1 + '@stablelib/wipe': 1.0.1 - /@types/abstract-leveldown@5.0.2: + /@stablelib/random@1.0.2: + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + + /@stablelib/sha256@1.0.1: + resolution: {integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + + /@stablelib/sha512@1.0.1: + resolution: {integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + + /@stablelib/wipe@1.0.1: + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + + /@stablelib/x25519@1.0.3: + resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} + dependencies: + '@stablelib/keyagreement': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/wipe': 1.0.1 + + /@szmarczak/http-timer@1.1.2: + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + dependencies: + defer-to-connect: 1.1.3 + dev: true + optional: true + + /@tanstack/query-core@4.29.25: + resolution: {integrity: sha512-DI4y4VC6Uw4wlTpOocEXDky69xeOScME1ezLKsj+hOk7DguC9fkqXtp6Hn39BVb9y0b5IBrY67q6kIX623Zj4Q==} + + /@tanstack/query-persist-client-core@4.29.25: + resolution: {integrity: sha512-jC1JlZxUaO4bJdeN0GcLwnNIbtsdzkL54hZP1rjTbp2tzfEHNQFkMjaIMZtnsxgdrU9LclXz8loOd1ufQ6C44w==} + dependencies: + '@tanstack/query-core': 4.29.25 + + /@tanstack/query-sync-storage-persister@4.29.25: + resolution: {integrity: sha512-X6kweYH4eooI1tPpKEt4Gdav4JvjAbX6lwWyvvHnLBsS1t8dV/9liemCIWCaPb9g17e5g9EfBTb7P3AImsZq2g==} + dependencies: + '@tanstack/query-persist-client-core': 4.29.25 + + /@tanstack/react-query-persist-client@4.29.25(@tanstack/react-query@4.29.25): + resolution: {integrity: sha512-Vm4E+iPZ7rPGfN0jhsK35vZ5EUFvKyE3Kg0uthlqmqmy2rzm43f1EIFpA1++j0dWST/swIOj3pfiSBxJ/6s5zA==} + peerDependencies: + '@tanstack/react-query': 4.29.25 + dependencies: + '@tanstack/query-persist-client-core': 4.29.25 + '@tanstack/react-query': 4.29.25(react-dom@18.2.0)(react@18.2.0) + + /@tanstack/react-query@4.29.25(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-c1+Ezu+XboYrdAMdusK2fTdRqXPMgPAnyoTrzHOZQqr8Hqz6PNvV9DSKl8agUo6nXX4np7fdWabIprt+838dLg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@tanstack/query-core': 4.29.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) + + /@testing-library/dom@9.3.1: + resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} + engines: {node: '>=14'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/runtime': 7.22.5 + '@types/aria-query': 5.0.1 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: false + + /@testing-library/jest-dom@5.16.5: + resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} + engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + dependencies: + '@adobe/css-tools': 4.2.0 + '@babel/runtime': 7.22.5 + '@types/testing-library__jest-dom': 5.14.8 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.5.16 + lodash: 4.17.21 + redent: 3.0.0 + dev: true + + /@testing-library/react-hooks@8.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==} + engines: {node: '>=12'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 + react: ^16.9.0 || ^17.0.0 + react-dom: ^16.9.0 || ^17.0.0 + react-test-renderer: ^16.9.0 || ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-dom: + optional: true + react-test-renderer: + optional: true + dependencies: + '@babel/runtime': 7.22.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-error-boundary: 3.1.4(react@18.2.0) + dev: true + + /@testing-library/react@14.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@babel/runtime': 7.22.5 + '@testing-library/dom': 9.3.1 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@textlint/ast-node-types@12.2.1: + resolution: {integrity: sha512-NXYza6aG1+LdZ4g83gjRhDht+gdrTjJYkdcQhpvzNCtTar/sVpaykkauRcAKLhkIWrQpfb311pfMlU6qNDW76Q==} + dev: true + + /@textlint/markdown-to-ast@12.2.1: + resolution: {integrity: sha512-p+LlVcrgHnSNEWWflYU412uu+v4Cejs6hmI4SgZCheNg4u7Ik78aKgpe4jT5BhjLSBZ/KP6IrJxtCUOoJIUWmQ==} + dependencies: + '@textlint/ast-node-types': 12.2.1 + debug: 4.3.4(supports-color@8.1.1) + remark-footnotes: 3.0.0 + remark-frontmatter: 3.0.0 + remark-gfm: 1.0.0 + remark-parse: 9.0.0 + traverse: 0.6.6 + unified: 9.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@tufjs/canonical-json@1.0.0: + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /@tufjs/models@1.0.4: + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + '@tufjs/canonical-json': 1.0.0 + minimatch: 9.0.2 + dev: true + + /@typechain/ethers-v5@2.0.0(ethers@5.7.1)(typechain@3.0.0): + resolution: {integrity: sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw==} + peerDependencies: + ethers: ^5.0.0 + typechain: ^3.0.0 + dependencies: + ethers: 5.7.1 + typechain: 3.0.0(typescript@4.9.5) + dev: true + + /@types/abstract-leveldown@5.0.2: resolution: {integrity: sha512-+jA1XXF3jsz+Z7FcuiNqgK53hTa/luglT2TyTpKPqoYbxVY+mCPF22Rm+q3KPBrMHJwNXFrTViHszBOfU4vftQ==} dev: true + /@types/aria-query@5.0.1: + resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} + dev: false + /@types/bn.js@4.11.6: resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} dependencies: @@ -3113,7 +3613,7 @@ packages: resolution: {integrity: sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==} dependencies: '@types/connect': 3.4.35 - '@types/node': 17.0.21 + '@types/node': 12.20.55 dev: true /@types/chai-as-promised@7.1.4: @@ -3144,15 +3644,19 @@ packages: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: '@types/node': 12.20.55 - dev: true /@types/dateformat@5.0.0: resolution: {integrity: sha512-SZg4JdHIWHQGEokbYGZSDvo5wA4TLYPXaqhigs/wH+REDOejcJzgH+qyY+HtEUtWOZxEUkbhbdYPqQDiEgrXeA==} + /@types/debug@4.1.8: + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + dependencies: + '@types/ms': 0.7.31 + /@types/express-serve-static-core@4.17.24: resolution: {integrity: sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==} dependencies: - '@types/node': 17.0.21 + '@types/node': 12.20.55 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -3166,12 +3670,42 @@ packages: '@types/serve-static': 1.13.10 dev: true + /@types/glob@8.1.0: + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 12.20.55 + dev: true + /@types/is-ci@3.0.0: resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} dependencies: ci-info: 3.8.0 dev: false + /@types/istanbul-lib-coverage@2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports@3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/jest@29.5.3: + resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==} + dependencies: + expect: 29.6.1 + pretty-format: 29.6.1 + dev: true + /@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true @@ -3217,6 +3751,10 @@ packages: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: true + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true + /@types/minimist@1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} @@ -3236,6 +3774,9 @@ packages: '@types/node': 17.0.21 dev: true + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + /@types/node-fetch@2.5.10: resolution: {integrity: sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==} dependencies: @@ -3282,7 +3823,7 @@ packages: /@types/pino-std-serializers@2.4.1: resolution: {integrity: sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==} dependencies: - '@types/node': 17.0.21 + '@types/node': 12.20.55 dev: true /@types/pino@6.3.11: @@ -3298,6 +3839,10 @@ packages: resolution: {integrity: sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==} dev: true + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + dev: false + /@types/qs@6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} dev: true @@ -3306,6 +3851,20 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.15 + dev: false + + /@types/react@18.2.15: + resolution: {integrity: sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + dev: false + /@types/resolve@0.0.8: resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} dependencies: @@ -3319,6 +3878,10 @@ packages: dev: true optional: true + /@types/scheduler@0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + dev: false + /@types/secp256k1@4.0.3: resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} dependencies: @@ -3337,7 +3900,7 @@ packages: resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==} dependencies: '@types/mime': 1.3.2 - '@types/node': 17.0.21 + '@types/node': 12.20.55 dev: true /@types/sinon-chai@3.2.5: @@ -3353,6 +3916,19 @@ packages: '@sinonjs/fake-timers': 7.1.2 dev: true + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/testing-library__jest-dom@5.14.8: + resolution: {integrity: sha512-NRfJE9Cgpmu4fx716q9SYmU4jxxhYRU1BQo239Txt/9N3EC745XZX1Yl7h/SBIDlo1ANVOCRB4YDXjaQdoKCHQ==} + dependencies: + '@types/jest': 29.5.3 + dev: true + + /@types/trusted-types@2.0.3: + resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} + /@types/underscore@1.11.3: resolution: {integrity: sha512-Fl1TX1dapfXyDqFg2ic9M+vlXRktcPJrc4PR7sRc7sdVrjavg/JHlbUXBt8qWWqhJrmSqg3RNAkAPRiOYw6Ahw==} dev: true @@ -3368,6 +3944,21 @@ packages: '@types/underscore': 1.11.3 dev: true + /@types/ws@7.4.7: + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + dependencies: + '@types/node': 12.20.55 + + /@types/yargs-parser@21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + dev: true + + /@types/yargs@17.0.24: + resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.3): resolution: {integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3502,6 +4093,22 @@ packages: resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} dev: true + /@vitest/coverage-istanbul@0.33.0(vitest@0.33.0): + resolution: {integrity: sha512-DGv6ybomCbLFGlNOGHgVCsaqHPWJWLp8JPrwzZo8I4vZ/O3muqTyZq5R52CZl0ENqgjFGWjra7yNPFUgxKf5pw==} + peerDependencies: + vitest: '>=0.32.0 <1' + dependencies: + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + test-exclude: 6.0.0 + vitest: 0.33.0(jsdom@22.1.0) + transitivePeerDependencies: + - supports-color + dev: true + /@vitest/expect@0.28.3: resolution: {integrity: sha512-dnxllhfln88DOvpAK1fuI7/xHwRgTgR4wdxHldPaoTaBu6Rh9zK5b//v/cjTkhOfNP/AJ8evbNO8H7c3biwd1g==} dependencies: @@ -3510,6 +4117,14 @@ packages: chai: 4.3.7 dev: true + /@vitest/expect@0.33.0: + resolution: {integrity: sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==} + dependencies: + '@vitest/spy': 0.33.0 + '@vitest/utils': 0.33.0 + chai: 4.3.7 + dev: true + /@vitest/runner@0.28.3: resolution: {integrity: sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ==} dependencies: @@ -3518,12 +4133,34 @@ packages: pathe: 1.1.1 dev: true + /@vitest/runner@0.33.0: + resolution: {integrity: sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg==} + dependencies: + '@vitest/utils': 0.33.0 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@0.33.0: + resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} + dependencies: + magic-string: 0.30.1 + pathe: 1.1.1 + pretty-format: 29.6.1 + dev: true + /@vitest/spy@0.28.3: resolution: {integrity: sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w==} dependencies: tinyspy: 1.0.2 dev: true + /@vitest/spy@0.33.0: + resolution: {integrity: sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg==} + dependencies: + tinyspy: 2.1.1 + dev: true + /@vitest/utils@0.28.3: resolution: {integrity: sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ==} dependencies: @@ -3534,6 +4171,14 @@ packages: pretty-format: 27.5.1 dev: true + /@vitest/utils@0.33.0: + resolution: {integrity: sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==} + dependencies: + diff-sequences: 29.4.3 + loupe: 2.3.6 + pretty-format: 29.6.1 + dev: true + /@vue/compiler-core@3.2.36: resolution: {integrity: sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==} dependencies: @@ -3553,7 +4198,7 @@ packages: /@vue/compiler-sfc@3.2.36: resolution: {integrity: sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==} dependencies: - '@babel/parser': 7.18.4 + '@babel/parser': 7.22.5 '@vue/compiler-core': 3.2.36 '@vue/compiler-dom': 3.2.36 '@vue/compiler-ssr': 3.2.36 @@ -3561,41 +4206,771 @@ packages: '@vue/shared': 3.2.36 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.24 + postcss: 8.4.26 source-map: 0.6.1 dev: true - /@vue/compiler-ssr@3.2.36: - resolution: {integrity: sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==} - dependencies: - '@vue/compiler-dom': 3.2.36 - '@vue/shared': 3.2.36 + /@vue/compiler-ssr@3.2.36: + resolution: {integrity: sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==} + dependencies: + '@vue/compiler-dom': 3.2.36 + '@vue/shared': 3.2.36 + dev: true + + /@vue/reactivity-transform@3.2.36: + resolution: {integrity: sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==} + dependencies: + '@babel/parser': 7.22.5 + '@vue/compiler-core': 3.2.36 + '@vue/shared': 3.2.36 + estree-walker: 2.0.2 + magic-string: 0.25.9 + dev: true + + /@vue/shared@3.2.36: + resolution: {integrity: sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==} + dev: true + + /@wagmi/chains@0.2.16(typescript@4.9.3): + resolution: {integrity: sha512-rkWaI2PxCnbD8G07ZZff5QXftnSkYL0h5f4DkHCG3fGYYr/ZDvmCL4bMae7j7A9sAif1csPPBmbCzHp3R5ogCQ==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.3 + + /@wagmi/chains@0.2.22(typescript@4.9.3): + resolution: {integrity: sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.3 + + /@wagmi/chains@1.3.0(typescript@4.9.3): + resolution: {integrity: sha512-7tyr1irTZQpA4/4HoIiJP3XYZuJIZuWiZ1V1j5WEG3cjm8TXIlMEzO0N+hT/cZKw4/UtF2EukvB8GkDWa2S77w==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.3 + dev: true + + /@wagmi/chains@1.5.0(typescript@4.9.3): + resolution: {integrity: sha512-JO5iqh7Km4GW/6XKKDYMq3YQ9wlOSGzzaTUQhALQ58KANxEZ70tZWhfTZAPD3fdgv4wheai7kyHDNgTW6X7fnw==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.3 + dev: true + + /@wagmi/chains@1.6.0(typescript@4.9.3): + resolution: {integrity: sha512-5FRlVxse5P4ZaHG3GTvxwVANSmYJas1eQrTBHhjxVtqXoorm0aLmCHbhmN8Xo1yu09PaWKlleEvfE98yH4AgIw==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.3 + dev: true + + /@wagmi/cli@1.3.0(@wagmi/core@1.3.7)(typescript@4.9.3)(wagmi@1.0.1): + resolution: {integrity: sha512-/YXmdp0XWgQEwRSVO8IjVB8KY5HK+6+eqJsZI3a+y3XMH4T/NxVBoT/JxTqV6HEivr3HOLgDcTzvQhNy3mZ0HA==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + '@wagmi/core': '>=1.0.0' + typescript: '>=5.0.4' + wagmi: '>=1.0.0' + peerDependenciesMeta: + '@wagmi/core': + optional: true + typescript: + optional: true + wagmi: + optional: true + dependencies: + '@wagmi/chains': 1.3.0(typescript@4.9.3) + '@wagmi/core': 1.3.7(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + abitype: 0.8.7(typescript@4.9.3)(zod@3.21.4) + abort-controller: 3.0.0 + bundle-require: 3.1.2(esbuild@0.15.13) + cac: 6.7.14 + change-case: 4.1.2 + chokidar: 3.5.3 + dedent: 0.7.0 + detect-package-manager: 2.0.1 + dotenv: 16.1.4 + dotenv-expand: 10.0.0 + esbuild: 0.15.13 + execa: 6.1.0 + find-up: 6.3.0 + fs-extra: 10.1.0 + globby: 13.2.2 + node-fetch: 3.3.1 + ora: 6.3.1 + pathe: 1.1.1 + picocolors: 1.0.0 + prettier: 2.8.8 + typescript: 4.9.3 + viem: 1.3.0(typescript@4.9.3)(zod@3.21.4) + wagmi: 1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + zod: 3.21.4 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@wagmi/connectors@1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + resolution: {integrity: sha512-fl01vym19DE1uoE+MlASw5zo3Orr/YXlJRjOKLaKYtV+Q7jOLY4TwHgq7sEMs+JYOvFICFBEAlWNNxidr51AqQ==} + peerDependencies: + '@wagmi/chains': '>=0.2.0' + typescript: '>=4.9.4' + viem: ~0.3.18 + peerDependenciesMeta: + '@wagmi/chains': + optional: true + typescript: + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.7.1 + '@ledgerhq/connect-kit-loader': 1.1.0 + '@safe-global/safe-apps-provider': 0.15.2 + '@safe-global/safe-apps-sdk': 7.11.0 + '@wagmi/chains': 0.2.22(typescript@4.9.3) + '@walletconnect/ethereum-provider': 2.7.2(@web3modal/standalone@2.4.3) + '@walletconnect/legacy-provider': 2.0.0 + '@web3modal/standalone': 2.4.3(react@18.2.0) + abitype: 0.8.1(typescript@4.9.3) + eventemitter3: 4.0.7 + typescript: 4.9.3 + viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - react + - supports-color + - utf-8-validate + - zod + + /@wagmi/connectors@2.6.6(@wagmi/chains@1.5.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + resolution: {integrity: sha512-/o1c/TCivQs8DOAUOcQvY2UIt3p2mWOAHi39D0LC74+ncpXzLC5/gyaWU38qnTxPM8s/PmTmaWDgz+VhICXrag==} + peerDependencies: + '@wagmi/chains': '>=1.3.0' + typescript: '>=5.0.4' + viem: '>=0.3.35' + peerDependenciesMeta: + '@wagmi/chains': + optional: true + typescript: + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.7.1 + '@ledgerhq/connect-kit-loader': 1.1.0 + '@safe-global/safe-apps-provider': 0.17.1(typescript@4.9.3) + '@safe-global/safe-apps-sdk': 8.0.0(typescript@4.9.3) + '@wagmi/chains': 1.5.0(typescript@4.9.3) + '@walletconnect/ethereum-provider': 2.9.0(@walletconnect/modal@2.5.9) + '@walletconnect/legacy-provider': 2.0.0 + '@walletconnect/modal': 2.5.9(react@18.2.0) + '@walletconnect/utils': 2.9.0 + abitype: 0.8.7(typescript@4.9.3)(zod@3.21.4) + eventemitter3: 4.0.7 + typescript: 4.9.3 + viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - lokijs + - react + - supports-color + - utf-8-validate + - zod + dev: true + + /@wagmi/core@1.0.1(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + resolution: {integrity: sha512-Zzg4Ob92QMF9NsC+z5/8JZjMn3NCCnwVWGJlv79qRX9mp5Ku40OzJNvqDnjcSGjshe6H0L/KtFZAqTlmu8lT7w==} + peerDependencies: + typescript: '>=4.9.4' + viem: ~0.3.18 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@wagmi/chains': 0.2.22(typescript@4.9.3) + '@wagmi/connectors': 1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + abitype: 0.8.1(typescript@4.9.3) + eventemitter3: 4.0.7 + typescript: 4.9.3 + viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + zustand: 4.3.9(react@18.2.0) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - immer + - lokijs + - react + - supports-color + - utf-8-validate + - zod + + /@wagmi/core@1.3.7(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + resolution: {integrity: sha512-ens31RwICdrbRanNYwlJs0DAw/LOqUPQm6qXsmEciOENT4w+7pC959LXU9xfaOADWVMekeLDmRqAGCszTNIXAg==} + peerDependencies: + typescript: '>=5.0.4' + viem: '>=0.3.35' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@wagmi/chains': 1.5.0(typescript@4.9.3) + '@wagmi/connectors': 2.6.6(@wagmi/chains@1.5.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + abitype: 0.8.7(typescript@4.9.3)(zod@3.21.4) + eventemitter3: 4.0.7 + typescript: 4.9.3 + viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + zustand: 4.3.9(react@18.2.0) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - immer + - lokijs + - react + - supports-color + - utf-8-validate + - zod + dev: true + + /@walletconnect/core@2.7.2: + resolution: {integrity: sha512-gInSwh3uLpTEkDGArfOFoOVgiXW+zkZJpGqfARVi5fhSxsnL1jYNpqO2k8KAXUPfB4MIzLyaGruiaywncLAczA==} + dependencies: + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.13 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.7.2 + '@walletconnect/utils': 2.7.2 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + + /@walletconnect/core@2.9.0: + resolution: {integrity: sha512-MZYJghS9YCvGe32UOgDj0mCasaOoGHQaYXWeQblXE/xb8HuaM6kAWhjIQN9P+MNp5QP134BHP5olQostcCotXQ==} + dependencies: + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.12 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.9.0 + '@walletconnect/utils': 2.9.0 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: true + + /@walletconnect/crypto@1.0.3: + resolution: {integrity: sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/environment': 1.0.1 + '@walletconnect/randombytes': 1.0.3 + aes-js: 3.1.2 + hash.js: 1.1.7 + tslib: 1.14.1 + + /@walletconnect/encoding@1.0.2: + resolution: {integrity: sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==} + dependencies: + is-typedarray: 1.0.0 + tslib: 1.14.1 + typedarray-to-buffer: 3.1.5 + + /@walletconnect/environment@1.0.1: + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + dependencies: + tslib: 1.14.1 + + /@walletconnect/ethereum-provider@2.7.2(@web3modal/standalone@2.4.3): + resolution: {integrity: sha512-bvmutLrKKLlQ1WxKCvvX5p5YVox1D1f3Enp6hzAiZf4taN+n/M5rmwfAcLgLhp4cTAUDhl3zgtZErzDyJnvGvQ==} + peerDependencies: + '@web3modal/standalone': '>=2' + peerDependenciesMeta: + '@web3modal/standalone': + optional: true + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/sign-client': 2.7.2 + '@walletconnect/types': 2.7.2 + '@walletconnect/universal-provider': 2.7.2 + '@walletconnect/utils': 2.7.2 + '@web3modal/standalone': 2.4.3(react@18.2.0) + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - utf-8-validate + + /@walletconnect/ethereum-provider@2.9.0(@walletconnect/modal@2.5.9): + resolution: {integrity: sha512-rSXkC0SXMigJRdIi/M2RMuEuATY1AwtlTWQBnqyxoht7xbO2bQNPCXn0XL4s/GRNrSUtoKSY4aPMHXV4W4yLBA==} + peerDependencies: + '@walletconnect/modal': '>=2' + peerDependenciesMeta: + '@walletconnect/modal': + optional: true + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/modal': 2.5.9(react@18.2.0) + '@walletconnect/sign-client': 2.9.0 + '@walletconnect/types': 2.9.0 + '@walletconnect/universal-provider': 2.9.0 + '@walletconnect/utils': 2.9.0 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - lokijs + - utf-8-validate + dev: true + + /@walletconnect/events@1.0.1: + resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + + /@walletconnect/heartbeat@1.2.1: + resolution: {integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/time': 1.0.2 + tslib: 1.14.1 + + /@walletconnect/jsonrpc-http-connection@1.0.7: + resolution: {integrity: sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==} + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + cross-fetch: 3.1.8 + tslib: 1.14.1 + transitivePeerDependencies: + - encoding + + /@walletconnect/jsonrpc-provider@1.0.13: + resolution: {integrity: sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==} + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + tslib: 1.14.1 + + /@walletconnect/jsonrpc-types@1.0.3: + resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==} + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + + /@walletconnect/jsonrpc-utils@1.0.8: + resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} + dependencies: + '@walletconnect/environment': 1.0.1 + '@walletconnect/jsonrpc-types': 1.0.3 + tslib: 1.14.1 + + /@walletconnect/jsonrpc-ws-connection@1.0.12: + resolution: {integrity: sha512-HAcadga3Qjt1Cqy+qXEW6zjaCs8uJGdGQrqltzl3OjiK4epGZRdvSzTe63P+t/3z+D2wG+ffEPn0GVcDozmN1w==} + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + tslib: 1.14.1 + ws: 7.5.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@walletconnect/jsonrpc-ws-connection@1.0.13: + resolution: {integrity: sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg==} + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + tslib: 1.14.1 + ws: 7.5.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + /@walletconnect/keyvaluestorage@1.0.2: + resolution: {integrity: sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==} + peerDependencies: + '@react-native-async-storage/async-storage': 1.x + lokijs: 1.x + peerDependenciesMeta: + '@react-native-async-storage/async-storage': + optional: true + lokijs: + optional: true + dependencies: + safe-json-utils: 1.1.1 + tslib: 1.14.1 + + /@walletconnect/legacy-client@2.0.0: + resolution: {integrity: sha512-v5L7rYk9loVnfvUf0mF+76bUPFaU5/Vh7mzL6/950CD/yoGdzYZ3Kj+L7mkC6HPMEGeQsBP1+sqBuiVGZ/aODA==} + dependencies: + '@walletconnect/crypto': 1.0.3 + '@walletconnect/encoding': 1.0.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/legacy-utils': 2.0.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 6.14.1 + + /@walletconnect/legacy-modal@2.0.0: + resolution: {integrity: sha512-jckNd8lMhm4X7dX9TDdxM3bXKJnaqkRs6K2Mo5j6GmbIF9Eyx40jZ5+q457RVxvM6ciZEDT5s1wBHWdWoOo+9Q==} + dependencies: + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/legacy-utils': 2.0.0 + copy-to-clipboard: 3.3.3 + preact: 10.16.0 + qrcode: 1.5.3 + + /@walletconnect/legacy-provider@2.0.0: + resolution: {integrity: sha512-A8xPebMI1A+50HbWwTpFCbwP7G+1NGKdTKyg8BUUg3h3Y9JucpC1W6w/x0v1Xw7qFEqQnz74LoIN/A3ytH9xrQ==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/legacy-client': 2.0.0 + '@walletconnect/legacy-modal': 2.0.0 + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/legacy-utils': 2.0.0 + transitivePeerDependencies: + - encoding + + /@walletconnect/legacy-types@2.0.0: + resolution: {integrity: sha512-sOVrA7HUdbI1OwKyPOQU0/DdvTSVFlsXWpAk2K2WvP2erTkBWPMTJq6cv2BmKdoJ3p6gLApT7sd+jHi3OF71uw==} + dependencies: + '@walletconnect/jsonrpc-types': 1.0.3 + + /@walletconnect/legacy-utils@2.0.0: + resolution: {integrity: sha512-CPWxSVVXw0kgNCxvU126g4GiV3mzXmC8IPJ15twE46aJ1FX+RHEIfAzFMFz2F2+fEhBxL63A7dwNQKDXorRPcQ==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 6.14.1 + + /@walletconnect/logger@2.0.1: + resolution: {integrity: sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==} + dependencies: + pino: 7.11.0 + tslib: 1.14.1 + + /@walletconnect/modal-core@2.5.9(react@18.2.0): + resolution: {integrity: sha512-isIebwF9hOknGouhS/Ob4YJ9Sa/tqNYG2v6Ua9EkCqIoLimepkG5eC53tslUWW29SLSfQ9qqBNG2+iE7yQXqgw==} + dependencies: + buffer: 6.0.3 + valtio: 1.10.6(react@18.2.0) + transitivePeerDependencies: + - react + dev: true + + /@walletconnect/modal-ui@2.5.9(react@18.2.0): + resolution: {integrity: sha512-nfBaAT9Ls7RZTBBgAq+Nt/3AoUcinIJ9bcq5UHXTV3lOPu/qCKmUC/0HY3GvUK8ykabUAsjr0OAGmcqkB91qug==} + dependencies: + '@walletconnect/modal-core': 2.5.9(react@18.2.0) + lit: 2.7.5 + motion: 10.16.2 + qrcode: 1.5.3 + transitivePeerDependencies: + - react + dev: true + + /@walletconnect/modal@2.5.9(react@18.2.0): + resolution: {integrity: sha512-Zs2RvPwbBNRdBhb50FuJCxi3FJltt1KSpI7odjU/x9GTpTOcSOkmR66PBCy2JvNA0+ztnS1Xs0LVEr3lu7/Jzw==} + dependencies: + '@walletconnect/modal-core': 2.5.9(react@18.2.0) + '@walletconnect/modal-ui': 2.5.9(react@18.2.0) + transitivePeerDependencies: + - react + dev: true + + /@walletconnect/randombytes@1.0.3: + resolution: {integrity: sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/environment': 1.0.1 + randombytes: 2.1.0 + tslib: 1.14.1 + + /@walletconnect/relay-api@1.0.9: + resolution: {integrity: sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==} + dependencies: + '@walletconnect/jsonrpc-types': 1.0.3 + tslib: 1.14.1 + + /@walletconnect/relay-auth@1.0.4: + resolution: {integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==} + dependencies: + '@stablelib/ed25519': 1.0.3 + '@stablelib/random': 1.0.2 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + tslib: 1.14.1 + uint8arrays: 3.1.1 + + /@walletconnect/safe-json@1.0.2: + resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} + dependencies: + tslib: 1.14.1 + + /@walletconnect/sign-client@2.7.2: + resolution: {integrity: sha512-JOYPmrgR4YG4M2comNcXaa8cLIws0ZJj/SCpF0XJzRZP2+OXWouK19UaI32ROQrcwNodBNeYFRfT5hSM5xjfKg==} + dependencies: + '@walletconnect/core': 2.7.2 + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.7.2 + '@walletconnect/utils': 2.7.2 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + + /@walletconnect/sign-client@2.9.0: + resolution: {integrity: sha512-mEKc4LlLMebCe45qzqh+MX4ilQK4kOEBzLY6YJpG8EhyT45eX4JMNA7qQoYa9MRMaaVb/7USJcc4e3ZrjZvQmA==} + dependencies: + '@walletconnect/core': 2.9.0 + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.9.0 + '@walletconnect/utils': 2.9.0 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: true + + /@walletconnect/time@1.0.2: + resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} + dependencies: + tslib: 1.14.1 + + /@walletconnect/types@2.7.2: + resolution: {integrity: sha512-1O2UefakZpT0ErRfEAXY7Ls3qdUrKDky/DsK088xR6klyfkQOx+aSVH0fJYLhmnqPTuvp3lrqNbsDc0s6/6nvg==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + + /@walletconnect/types@2.9.0: + resolution: {integrity: sha512-ORopsMfSRvUYqtjKKd6scfg8o4/aGebipLxx92AuuUgMTERSU6cGmIrK6rdLu7W6FBJkmngPLEGc9mRqAb9Lug==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + dev: true + + /@walletconnect/universal-provider@2.7.2: + resolution: {integrity: sha512-5glu7vCmq3SFUYgniICf7CUZMwrd6FNS/qnCjrnfgW8T55Opms9YkhRpWTJFHpBdNRWF7n6z/Kss2J8olKTxKw==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/sign-client': 2.7.2 + '@walletconnect/types': 2.7.2 + '@walletconnect/utils': 2.7.2 + eip1193-provider: 1.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - utf-8-validate + + /@walletconnect/universal-provider@2.9.0: + resolution: {integrity: sha512-k3nkSBkF69sJJVoe17IVoPtnhp/sgaa2t+x7BvA/BKeMxE0DGdtRJdEXotTc8DBmI7o2tkq6l8+HyFBGjQ/CjQ==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/sign-client': 2.9.0 + '@walletconnect/types': 2.9.0 + '@walletconnect/utils': 2.9.0 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - lokijs + - utf-8-validate + dev: true + + /@walletconnect/utils@2.7.2: + resolution: {integrity: sha512-b2lU/JoWqwCOLMudPSRTt3pliBnv6qQHCBWiMBYi1vL14AW3usO5QmK1wF90AVwpdPJ7wFZ6MgHymeWWfhYnGQ==} + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.7.2 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + + /@walletconnect/utils@2.9.0: + resolution: {integrity: sha512-7Tu3m6dZL84KofrNBcblsgpSqU2vdo9ImLD7zWimLXERVGNQ8smXG+gmhQYblebIBhsPzjy9N38YMC3nPlfQNw==} + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.9.0 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs dev: true - /@vue/reactivity-transform@3.2.36: - resolution: {integrity: sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==} + /@walletconnect/window-getters@1.0.1: + resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} dependencies: - '@babel/parser': 7.22.5 - '@vue/compiler-core': 3.2.36 - '@vue/shared': 3.2.36 - estree-walker: 2.0.2 - magic-string: 0.25.9 - dev: true + tslib: 1.14.1 - /@vue/shared@3.2.36: - resolution: {integrity: sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==} - dev: true + /@walletconnect/window-metadata@1.0.1: + resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} + dependencies: + '@walletconnect/window-getters': 1.0.1 + tslib: 1.14.1 - /@wagmi/chains@0.2.16(typescript@4.9.3): - resolution: {integrity: sha512-rkWaI2PxCnbD8G07ZZff5QXftnSkYL0h5f4DkHCG3fGYYr/ZDvmCL4bMae7j7A9sAif1csPPBmbCzHp3R5ogCQ==} - peerDependencies: - typescript: '>=4.9.4' - peerDependenciesMeta: - typescript: - optional: true + /@web3modal/core@2.4.3(react@18.2.0): + resolution: {integrity: sha512-7Z/sDe9RIYQ2k9ITcxgEa/u7FvlI76vcVVZn9UY4ISivefqrH4JAS3GX4JmVNUUlovwuiZdyqBv4llAQOMK6Rg==} dependencies: - typescript: 4.9.3 - dev: true + buffer: 6.0.3 + valtio: 1.10.5(react@18.2.0) + transitivePeerDependencies: + - react + + /@web3modal/standalone@2.4.3(react@18.2.0): + resolution: {integrity: sha512-5ATXBoa4GGm+TIUSsKWsfWCJunv1XevOizpgTFhqyeGgRDmWhqsz9UIPzH/1mk+g0iJ/xqMKs5F6v9D2QeKxag==} + deprecated: This package has been deprecated in favor of @walletconnect/modal. Please read more at https://docs.walletconnect.com + dependencies: + '@web3modal/core': 2.4.3(react@18.2.0) + '@web3modal/ui': 2.4.3(react@18.2.0) + transitivePeerDependencies: + - react + + /@web3modal/ui@2.4.3(react@18.2.0): + resolution: {integrity: sha512-J989p8CdtEhI9gZHf/rZ/WFqYlrAHWw9GmAhFoiNODwjAp0BoG/uoaPiijJMchXdngihZOjLGCQwDXU16DHiKg==} + dependencies: + '@web3modal/core': 2.4.3(react@18.2.0) + lit: 2.7.5 + motion: 10.16.2 + qrcode: 1.5.3 + transitivePeerDependencies: + - react /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -3622,6 +4997,9 @@ packages: dependencies: jsonparse: 1.3.1 through: 2.3.8 + + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true /abbrev@1.1.1: @@ -3633,6 +5011,30 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true + /abitype@0.8.1(typescript@4.9.3): + resolution: {integrity: sha512-n8Di6AWb3i7HnEkBvecU6pG0a5nj5YwMvdAIwPLsQK95ulRy/XS113s/RXvSfTX1iOQJYFrEO3/q4SMWu7OwTA==} + peerDependencies: + typescript: '>=4.9.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.3 + + /abitype@0.8.11(typescript@4.9.3)(zod@3.21.4): + resolution: {integrity: sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.3 + zod: 3.21.4 + dev: true + /abitype@0.8.2(typescript@4.9.3)(zod@3.20.2): resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} peerDependencies: @@ -3644,6 +5046,32 @@ packages: dependencies: typescript: 4.9.3 zod: 3.20.2 + + /abitype@0.8.7(typescript@4.9.3)(zod@3.21.4): + resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.3 + zod: 3.21.4 + dev: true + + /abitype@0.9.0(typescript@4.9.3): + resolution: {integrity: sha512-6T0BC3Yo3pIZ1kABVRokXYZULob3lWEfcJosJsrCAxfKVeyXvUMGIeJADgwHioccz/mYFye2vR3eq0sNAtBk2w==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 4.9.3 dev: true /abort-controller@3.0.0: @@ -3751,8 +5179,6 @@ packages: /aes-js@3.1.2: resolution: {integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==} - dev: true - optional: true /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -3771,7 +5197,6 @@ packages: humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color - dev: true /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -3864,7 +5289,6 @@ packages: /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - dev: true /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} @@ -3884,12 +5308,8 @@ packages: resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} dev: true - /anymatch@3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true /anymatch@3.1.3: @@ -3943,6 +5363,18 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.2 + dev: false + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: true + /arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} engines: {node: '>=0.10.0'} @@ -4104,6 +5536,11 @@ packages: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} dev: true + /async-mutex@0.2.6: + resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} + dependencies: + tslib: 2.6.0 + /async@1.5.2: resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} dev: true @@ -4158,7 +5595,6 @@ packages: follow-redirects: 1.15.2(debug@4.3.4) transitivePeerDependencies: - debug - dev: true /axios@1.1.3: resolution: {integrity: sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==} @@ -4726,11 +6162,9 @@ packages: resolution: {integrity: sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==} dependencies: safe-buffer: 5.2.1 - dev: true /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true /base@0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} @@ -4778,6 +6212,13 @@ packages: is-windows: 1.0.2 dev: false + /bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + bindings: 1.5.0 + /bignumber.js@9.0.1: resolution: {integrity: sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==} @@ -4796,6 +6237,14 @@ packages: engines: {node: '>=8'} dev: true + /bind-decorator@1.0.11: + resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} + + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + /bintrees@1.0.1: resolution: {integrity: sha512-tbaUB1QpTIj4cKY8c1rvNAvEQXA+ekzHmbe4jzNfW3QWsF9GnnP/BRWyl6/qqS53heoYJ93naaFcm/jooONH8g==} dev: false @@ -4818,6 +6267,14 @@ packages: readable-stream: 3.6.2 dev: true + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + /blakejs@1.1.1: resolution: {integrity: sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==} dev: true @@ -4914,6 +6371,13 @@ packages: dev: true optional: true + /borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -5039,7 +6503,6 @@ packages: resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} dependencies: base-x: 3.0.8 - dev: true /bs58check@2.1.2: resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} @@ -5086,14 +6549,12 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true /bufferutil@4.0.3: resolution: {integrity: sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==} requiresBuild: true dependencies: node-gyp-build: 4.6.0 - dev: true /bufio@1.2.0: resolution: {integrity: sha512-UlFk8z/PwdhYQTXSQQagwGAdtRI83gib2n4uy4rQnenxUM2yQi8lBDzF230BNk+3wAoZDxYRoBwVVUPgHa9MCA==} @@ -5115,6 +6576,26 @@ packages: semver: 7.5.3 dev: true + /bundle-require@3.1.2(esbuild@0.15.13): + resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.13' + dependencies: + esbuild: 0.15.13 + load-tsconfig: 0.2.5 + dev: true + + /bundle-require@4.0.1(esbuild@0.18.13): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.18.13 + load-tsconfig: 0.2.5 + dev: true + /byte-size@7.0.0: resolution: {integrity: sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==} engines: {node: '>=10'} @@ -5248,6 +6729,13 @@ packages: engines: {node: '>=6'} dev: true + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.0 + dev: true + /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -5274,6 +6762,14 @@ packages: resolution: {integrity: sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA==} dev: true + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.0 + upper-case-first: 2.0.2 + dev: true + /cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true @@ -5339,6 +6835,14 @@ packages: escape-string-regexp: 1.0.5 supports-color: 5.5.0 + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /chalk@4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} @@ -5354,6 +6858,28 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.0 + dev: true + /character-entities-legacy@1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} dev: true @@ -5382,7 +6908,7 @@ packages: resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==} engines: {node: '>= 8.10.0'} dependencies: - anymatch: 3.1.2 + anymatch: 3.1.3 braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 @@ -5480,6 +7006,13 @@ packages: restore-cursor: 3.1.0 dev: true + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + /cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} @@ -5574,6 +7107,10 @@ packages: engines: {node: '>=0.8'} dev: true + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + /cmd-shim@5.0.0: resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -5664,12 +7201,16 @@ packages: /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: false /commander@3.0.2: resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} dev: true + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -5738,6 +7279,14 @@ packages: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: true + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.0 + upper-case: 2.0.2 + dev: true + /content-disposition@0.5.3: resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==} engines: {node: '>= 0.6'} @@ -5900,11 +7449,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + /copyfiles@2.4.1: resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} hasBin: true dependencies: - glob: 7.2.0 + glob: 7.2.3 minimatch: 3.1.2 mkdirp: 1.0.4 noms: 0.0.0 @@ -6018,12 +7572,19 @@ packages: /cross-fetch@2.2.6: resolution: {integrity: sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==} dependencies: - node-fetch: 2.6.7 + node-fetch: 2.6.12 whatwg-fetch: 2.0.4 transitivePeerDependencies: - encoding dev: true + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + dependencies: + node-fetch: 2.6.12 + transitivePeerDependencies: + - encoding + /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -6077,12 +7638,27 @@ packages: engines: {node: '>=8'} dev: true + /css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true dev: true + /cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} + dependencies: + rrweb-cssom: 0.6.0 + dev: true + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: false + /csv-generate@3.4.3: resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} dev: false @@ -6123,6 +7699,20 @@ packages: dependencies: assert-plus: 1.0.0 + /data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + dev: true + + /data-urls@4.0.0: + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + dev: true + /dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} dev: true @@ -6221,6 +7811,10 @@ packages: engines: {node: '>=10'} dev: true + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -6258,6 +7852,29 @@ packages: regexp.prototype.flags: 1.5.0 dev: true + /deep-equal@2.2.2: + resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.1 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: false + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -6360,6 +7977,10 @@ packages: slash: 3.0.0 dev: true + /delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -6417,6 +8038,11 @@ packages: resolution: {integrity: sha512-3tzwGYogSJi8HoG93R5x9NrdefZQOXgHgGih/7eivloOq6yC6O+yoFxZnkgP661twvfILONfoKRdF9GQOGx2RA==} dev: true + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + /des.js@1.0.1: resolution: {integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==} dependencies: @@ -6433,6 +8059,9 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + /detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + /detect-indent@4.0.0: resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==} engines: {node: '>=0.10.0'} @@ -6450,6 +8079,18 @@ packages: engines: {node: '>=8'} dev: false + /detect-package-manager@2.0.1: + resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + + /diff-sequences@29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@3.5.0: resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} engines: {node: '>=0.3.1'} @@ -6478,6 +8119,9 @@ packages: dev: true optional: true + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -6512,6 +8156,9 @@ packages: esutils: 2.0.3 dev: true + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + /dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: @@ -6527,6 +8174,13 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + /domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} @@ -6542,6 +8196,13 @@ packages: domhandler: 4.3.1 dev: true + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.0 + dev: true + /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -6556,6 +8217,11 @@ packages: is-obj: 2.0.0 dev: true + /dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} + dev: true + /dotenv@10.0.0: resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} engines: {node: '>=10'} @@ -6599,7 +8265,6 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 stream-shift: 1.0.1 - dev: false /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -6614,6 +8279,16 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + /eip1193-provider@1.0.1: + resolution: {integrity: sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + '@json-rpc-tools/provider': 1.7.6 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} engines: {node: '>=0.10.0'} @@ -6650,7 +8325,6 @@ packages: /encode-utf8@1.0.3: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} - dev: true /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} @@ -6707,6 +8381,11 @@ packages: engines: {node: '>=0.12'} dev: true + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6759,8 +8438,8 @@ packages: has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.4 - is-array-buffer: 3.0.1 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 is-regex: 1.1.4 @@ -6822,6 +8501,20 @@ packages: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: false + /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -6863,6 +8556,14 @@ packages: es6-symbol: 3.1.3 dev: true + /es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + /es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + dependencies: + es6-promise: 4.2.8 + /es6-symbol@3.1.3: resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} dependencies: @@ -6870,6 +8571,15 @@ packages: ext: 1.5.0 dev: true + /esbuild-android-64@0.15.13: + resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /esbuild-android-64@0.15.18: resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} engines: {node: '>=12'} @@ -6879,6 +8589,15 @@ packages: dev: true optional: true + /esbuild-android-arm64@0.15.13: + resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /esbuild-android-arm64@0.15.18: resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} engines: {node: '>=12'} @@ -6888,6 +8607,15 @@ packages: dev: true optional: true + /esbuild-darwin-64@0.15.13: + resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /esbuild-darwin-64@0.15.18: resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} engines: {node: '>=12'} @@ -6897,6 +8625,15 @@ packages: dev: true optional: true + /esbuild-darwin-arm64@0.15.13: + resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /esbuild-darwin-arm64@0.15.18: resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} engines: {node: '>=12'} @@ -6906,6 +8643,15 @@ packages: dev: true optional: true + /esbuild-freebsd-64@0.15.13: + resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /esbuild-freebsd-64@0.15.18: resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} engines: {node: '>=12'} @@ -6915,6 +8661,15 @@ packages: dev: true optional: true + /esbuild-freebsd-arm64@0.15.13: + resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /esbuild-freebsd-arm64@0.15.18: resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} engines: {node: '>=12'} @@ -6924,6 +8679,15 @@ packages: dev: true optional: true + /esbuild-linux-32@0.15.13: + resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-32@0.15.18: resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} engines: {node: '>=12'} @@ -6933,6 +8697,15 @@ packages: dev: true optional: true + /esbuild-linux-64@0.15.13: + resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-64@0.15.18: resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} engines: {node: '>=12'} @@ -6942,6 +8715,15 @@ packages: dev: true optional: true + /esbuild-linux-arm64@0.15.13: + resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-arm64@0.15.18: resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} engines: {node: '>=12'} @@ -6951,6 +8733,15 @@ packages: dev: true optional: true + /esbuild-linux-arm@0.15.13: + resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-arm@0.15.18: resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} engines: {node: '>=12'} @@ -6960,6 +8751,15 @@ packages: dev: true optional: true + /esbuild-linux-mips64le@0.15.13: + resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-mips64le@0.15.18: resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} engines: {node: '>=12'} @@ -6969,6 +8769,15 @@ packages: dev: true optional: true + /esbuild-linux-ppc64le@0.15.13: + resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-ppc64le@0.15.18: resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} engines: {node: '>=12'} @@ -6978,6 +8787,15 @@ packages: dev: true optional: true + /esbuild-linux-riscv64@0.15.13: + resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-riscv64@0.15.18: resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} engines: {node: '>=12'} @@ -6987,6 +8805,15 @@ packages: dev: true optional: true + /esbuild-linux-s390x@0.15.13: + resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-s390x@0.15.18: resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} engines: {node: '>=12'} @@ -6996,6 +8823,15 @@ packages: dev: true optional: true + /esbuild-netbsd-64@0.15.13: + resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /esbuild-netbsd-64@0.15.18: resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} engines: {node: '>=12'} @@ -7005,6 +8841,15 @@ packages: dev: true optional: true + /esbuild-openbsd-64@0.15.13: + resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /esbuild-openbsd-64@0.15.18: resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} engines: {node: '>=12'} @@ -7014,6 +8859,15 @@ packages: dev: true optional: true + /esbuild-sunos-64@0.15.13: + resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /esbuild-sunos-64@0.15.18: resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} engines: {node: '>=12'} @@ -7023,6 +8877,15 @@ packages: dev: true optional: true + /esbuild-windows-32@0.15.13: + resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-32@0.15.18: resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} engines: {node: '>=12'} @@ -7032,6 +8895,15 @@ packages: dev: true optional: true + /esbuild-windows-64@0.15.13: + resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-64@0.15.18: resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} engines: {node: '>=12'} @@ -7041,6 +8913,15 @@ packages: dev: true optional: true + /esbuild-windows-arm64@0.15.13: + resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-arm64@0.15.18: resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} engines: {node: '>=12'} @@ -7050,6 +8931,36 @@ packages: dev: true optional: true + /esbuild@0.15.13: + resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.13 + '@esbuild/linux-loong64': 0.15.13 + esbuild-android-64: 0.15.13 + esbuild-android-arm64: 0.15.13 + esbuild-darwin-64: 0.15.13 + esbuild-darwin-arm64: 0.15.13 + esbuild-freebsd-64: 0.15.13 + esbuild-freebsd-arm64: 0.15.13 + esbuild-linux-32: 0.15.13 + esbuild-linux-64: 0.15.13 + esbuild-linux-arm: 0.15.13 + esbuild-linux-arm64: 0.15.13 + esbuild-linux-mips64le: 0.15.13 + esbuild-linux-ppc64le: 0.15.13 + esbuild-linux-riscv64: 0.15.13 + esbuild-linux-s390x: 0.15.13 + esbuild-netbsd-64: 0.15.13 + esbuild-openbsd-64: 0.15.13 + esbuild-sunos-64: 0.15.13 + esbuild-windows-32: 0.15.13 + esbuild-windows-64: 0.15.13 + esbuild-windows-arm64: 0.15.13 + dev: true + /esbuild@0.15.18: resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} engines: {node: '>=12'} @@ -7080,34 +8991,34 @@ packages: esbuild-windows-arm64: 0.15.18 dev: true - /esbuild@0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + /esbuild@0.18.13: + resolution: {integrity: sha512-vhg/WR/Oiu4oUIkVhmfcc23G6/zWuEQKFS+yiosSHe4aN6+DQRXIfeloYGibIfVhkr4wyfuVsGNLr+sQU1rWWw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 + '@esbuild/android-arm': 0.18.13 + '@esbuild/android-arm64': 0.18.13 + '@esbuild/android-x64': 0.18.13 + '@esbuild/darwin-arm64': 0.18.13 + '@esbuild/darwin-x64': 0.18.13 + '@esbuild/freebsd-arm64': 0.18.13 + '@esbuild/freebsd-x64': 0.18.13 + '@esbuild/linux-arm': 0.18.13 + '@esbuild/linux-arm64': 0.18.13 + '@esbuild/linux-ia32': 0.18.13 + '@esbuild/linux-loong64': 0.18.13 + '@esbuild/linux-mips64el': 0.18.13 + '@esbuild/linux-ppc64': 0.18.13 + '@esbuild/linux-riscv64': 0.18.13 + '@esbuild/linux-s390x': 0.18.13 + '@esbuild/linux-x64': 0.18.13 + '@esbuild/netbsd-x64': 0.18.13 + '@esbuild/openbsd-x64': 0.18.13 + '@esbuild/sunos-x64': 0.18.13 + '@esbuild/win32-arm64': 0.18.13 + '@esbuild/win32-ia32': 0.18.13 + '@esbuild/win32-x64': 0.18.13 dev: true /escalade@3.1.1: @@ -7121,6 +9032,11 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -7507,6 +9423,17 @@ packages: - supports-color dev: true + /eth-block-tracker@6.1.0: + resolution: {integrity: sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + '@metamask/utils': 3.6.0 + json-rpc-random-id: 1.0.1 + pify: 3.0.0 + transitivePeerDependencies: + - supports-color + /eth-ens-namehash@2.0.8: resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} dependencies: @@ -7514,6 +9441,16 @@ packages: js-sha3: 0.5.7 dev: true + /eth-json-rpc-filters@5.1.0: + resolution: {integrity: sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + async-mutex: 0.2.6 + eth-query: 2.1.2 + json-rpc-engine: 6.1.0 + pify: 5.0.0 + /eth-json-rpc-infura@3.2.1: resolution: {integrity: sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==} dependencies: @@ -7574,7 +9511,11 @@ packages: dependencies: json-rpc-random-id: 1.0.1 xtend: 4.0.2 - dev: true + + /eth-rpc-errors@4.0.2: + resolution: {integrity: sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ==} + dependencies: + fast-safe-stringify: 2.0.8 /eth-sig-util@1.4.2: resolution: {integrity: sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==} @@ -7921,6 +9862,43 @@ packages: - bufferutil - utf-8-validate + /ethers@5.7.2: + resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/providers': 5.7.2 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/solidity': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/units': 5.7.0 + '@ethersproject/wallet': 5.7.0 + '@ethersproject/web': 5.7.1 + '@ethersproject/wordlists': 5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + /ethjs-unit@0.1.6: resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} engines: {node: '>=6.5.0', npm: '>=3'} @@ -7948,12 +9926,10 @@ packages: /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: true /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - dev: true /evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} @@ -8005,6 +9981,21 @@ packages: strip-final-newline: 2.0.0 dev: true + /execa@6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /exit-on-epipe@1.0.1: resolution: {integrity: sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==} engines: {node: '>=0.8'} @@ -8025,6 +10016,18 @@ packages: - supports-color dev: true + /expect@29.6.1: + resolution: {integrity: sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.6.1 + '@types/node': 12.20.55 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.6.1 + jest-message-util: 29.6.1 + jest-util: 29.6.1 + dev: true + /exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} dev: true @@ -8178,6 +10181,10 @@ packages: resolution: {integrity: sha512-6NW8DZ8pWBc5NbGYUiqqccj9dXnuSzilZYqprdKJBZsQodGH9IyUoFOGxIWVDcBzHMb8ET24aqx9p66tZEWZkA==} engines: {'0': node >=0.6.0} + /eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + /fake-merkle-patricia-tree@1.0.1: resolution: {integrity: sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==} dependencies: @@ -8191,26 +10198,26 @@ packages: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} + /fast-glob@3.2.7: + resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} + engines: {node: '>=8'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + dev: true - /fast-glob@3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} + /fast-glob@3.3.0: + resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -8222,11 +10229,13 @@ packages: /fast-redact@3.0.1: resolution: {integrity: sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==} engines: {node: '>=6'} - dev: false /fast-safe-stringify@2.0.8: resolution: {integrity: sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==} + /fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + /fastify-warning@0.2.0: resolution: {integrity: sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==} deprecated: This module renamed to process-warning @@ -8243,6 +10252,14 @@ packages: format: 0.2.2 dev: true + /fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.1 + dev: true + /fetch-ponyfill@4.1.0: resolution: {integrity: sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==} dependencies: @@ -8263,6 +10280,9 @@ packages: flat-cache: 3.0.4 dev: true + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + /file-url@3.0.0: resolution: {integrity: sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==} engines: {node: '>=8'} @@ -8290,6 +10310,10 @@ packages: dependencies: to-regex-range: 5.0.1 + /filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + /finalhandler@1.1.2: resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} engines: {node: '>= 0.8'} @@ -8367,6 +10391,14 @@ packages: locate-path: 6.0.0 path-exists: 4.0.0 + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: true + /find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: @@ -8430,7 +10462,6 @@ packages: optional: true dependencies: debug: 4.3.4(supports-color@8.1.1) - dev: true /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -8492,6 +10523,13 @@ packages: engines: {node: '>=0.4.x'} dev: true + /formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: true + /formidable@1.2.2: resolution: {integrity: sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==} deprecated: 'Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau' @@ -8946,6 +10984,7 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -8956,7 +10995,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -9014,7 +11052,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.0 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -9025,7 +11063,18 @@ packages: dependencies: array-union: 3.0.1 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.0 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.0 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -9334,10 +11383,20 @@ packages: hasBin: true dev: true + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + dependencies: + capital-case: 1.0.4 + tslib: 2.6.0 + dev: true + /heap@0.2.6: resolution: {integrity: sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ==} dev: true + /hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + /hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} dependencies: @@ -9384,6 +11443,13 @@ packages: lru-cache: 7.18.3 dev: true + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -9465,6 +11531,17 @@ packages: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color + dev: false + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: true /human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -9475,11 +11552,15 @@ packages: engines: {node: '>=10.17.0'} dev: true + /human-signals@3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: true + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.3 - dev: true /husky@6.0.0: resolution: {integrity: sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==} @@ -9508,7 +11589,6 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true /ignore-walk@5.0.1: resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} @@ -9654,6 +11734,7 @@ packages: get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 + dev: true /internal-slot@1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} @@ -9719,14 +11800,6 @@ packages: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - - /is-array-buffer@3.0.1: - resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -9894,6 +11967,12 @@ packages: /is-function@1.0.2: resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -9913,10 +11992,19 @@ packages: engines: {node: '>=8'} dev: true + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true + /is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -9984,6 +12072,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -10002,6 +12094,10 @@ packages: dev: true optional: true + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: @@ -10027,6 +12123,11 @@ packages: engines: {node: '>=8'} dev: true + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -10071,6 +12172,11 @@ packages: engines: {node: '>=10'} dev: true + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + /is-url@1.2.4: resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} dev: true @@ -10079,11 +12185,22 @@ packages: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} dev: true + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: false + /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -10105,7 +12222,6 @@ packages: /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -10131,13 +12247,19 @@ packages: - encoding dev: true + /isomorphic-ws@4.0.1(ws@7.5.3): + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + dependencies: + ws: 7.5.3 + /isomorphic-ws@5.0.0(ws@8.12.0): resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: ws: '*' dependencies: ws: 8.12.0 - dev: true /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} @@ -10147,6 +12269,11 @@ packages: engines: {node: '>=8'} dev: true + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + /istanbul-lib-hook@3.0.0: resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} engines: {node: '>=8'} @@ -10160,7 +12287,20 @@ packages: dependencies: '@babel/core': 7.22.5 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.22.5 + '@babel/parser': 7.22.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -10172,7 +12312,7 @@ packages: dependencies: archy: 1.0.0 cross-spawn: 7.0.3 - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.2.0 make-dir: 3.1.0 p-map: 3.0.0 rimraf: 3.0.2 @@ -10183,7 +12323,7 @@ packages: resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} engines: {node: '>=8'} dependencies: - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.2.0 make-dir: 3.1.0 supports-color: 7.2.0 dev: true @@ -10193,7 +12333,18 @@ packages: engines: {node: '>=8'} dependencies: debug: 4.3.4(supports-color@8.1.1) - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -10207,6 +12358,14 @@ packages: istanbul-lib-report: 3.0.0 dev: true + /istanbul-reports@3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + /isurl@1.0.0: resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==} engines: {node: '>= 4'} @@ -10236,6 +12395,84 @@ packages: minimatch: 3.1.2 dev: true + /jayson@4.1.0: + resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@types/connect': 3.4.35 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.3) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + /jest-diff@29.6.1: + resolution: {integrity: sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.4.3 + jest-get-type: 29.4.3 + pretty-format: 29.6.1 + dev: true + + /jest-get-type@29.4.3: + resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-matcher-utils@29.6.1: + resolution: {integrity: sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.6.1 + jest-get-type: 29.4.3 + pretty-format: 29.6.1 + dev: true + + /jest-message-util@29.6.1: + resolution: {integrity: sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.22.5 + '@jest/types': 29.6.1 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.6.1 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-util@29.6.1: + resolution: {integrity: sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.1 + '@types/node': 12.20.55 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-sha3@0.5.7: resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} dev: true @@ -10284,6 +12521,44 @@ packages: engines: {node: '>=12.0.0'} dev: true + /jsdom@22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + cssstyle: 3.0.0 + data-urls: 4.0.0 + decimal.js: 10.4.3 + domexception: 4.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + rrweb-cssom: 0.6.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + ws: 8.13.0(bufferutil@4.0.3)(utf-8-validate@5.0.5) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -10330,6 +12605,13 @@ packages: - supports-color dev: true + /json-rpc-engine@6.1.0: + resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} + engines: {node: '>=10.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + eth-rpc-errors: 4.0.2 + /json-rpc-error@2.0.0: resolution: {integrity: sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==} dependencies: @@ -10338,7 +12620,6 @@ packages: /json-rpc-random-id@1.0.1: resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} - dev: true /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -10372,20 +12653,12 @@ packages: hasBin: true dev: true - /json5@1.0.1: - resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true dependencies: minimist: 1.2.8 dev: true - optional: true /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} @@ -10422,7 +12695,6 @@ packages: /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - dev: true /jsprim@1.4.1: resolution: {integrity: sha512-4Dj8Rf+fQ+/Pn7C5qeEX02op1WfOss3PKTE9Nsop3Dx+6UPxlm1dr/og7o2cRa5hNN07CACr4NFzRLtj/rjWog==} @@ -10457,7 +12729,6 @@ packages: node-addon-api: 2.0.2 node-gyp-build: 4.6.0 readable-stream: 3.6.2 - dev: true /keyv@3.1.0: resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} @@ -10466,6 +12737,9 @@ packages: dev: true optional: true + /keyvaluestorage-interface@1.0.0: + resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -10829,6 +13103,11 @@ packages: - supports-color dev: true + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + /lines-and-columns@1.1.6: resolution: {integrity: sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ==} @@ -10882,6 +13161,25 @@ packages: wrap-ansi: 7.0.0 dev: true + /lit-element@3.3.2: + resolution: {integrity: sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.1.1 + '@lit/reactive-element': 1.6.2 + lit-html: 2.7.5 + + /lit-html@2.7.5: + resolution: {integrity: sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA==} + dependencies: + '@types/trusted-types': 2.0.3 + + /lit@2.7.5: + resolution: {integrity: sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ==} + dependencies: + '@lit/reactive-element': 1.6.2 + lit-element: 3.3.2 + lit-html: 2.7.5 + /load-json-file@1.1.0: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} engines: {node: '>=0.10.0'} @@ -10913,6 +13211,11 @@ packages: type-fest: 0.6.0 dev: true + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} @@ -10948,6 +13251,13 @@ packages: dependencies: p-locate: 5.0.0 + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + /lodash.assign@4.2.0: resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} dev: true @@ -10958,7 +13268,6 @@ packages: /lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: true /lodash.isequalwith@4.4.0: resolution: {integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==} @@ -10972,6 +13281,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + /lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: false @@ -11002,6 +13315,14 @@ packages: is-unicode-supported: 0.1.0 dev: true + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: true + /log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} @@ -11029,13 +13350,18 @@ packages: hasBin: true dependencies: js-tokens: 4.0.0 - dev: true /loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: get-func-name: 2.0.0 + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.0 + dev: true + /lowercase-keys@1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} engines: {node: '>=0.10.0'} @@ -11077,7 +13403,6 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 - dev: true /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} @@ -11099,12 +13424,24 @@ packages: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: true + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: false + /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 dev: true + /magic-string@0.30.1: + resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -11131,7 +13468,7 @@ packages: cacache: 16.1.3 http-cache-semantics: 4.1.1 http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 is-lambda: 1.0.1 lru-cache: 7.18.3 minipass: 3.3.6 @@ -11156,7 +13493,7 @@ packages: cacache: 17.1.3 http-cache-semantics: 4.1.1 http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 is-lambda: 1.0.1 lru-cache: 7.18.3 minipass: 5.0.0 @@ -11637,7 +13974,7 @@ packages: engines: {node: '>=8.6'} dependencies: braces: 3.0.2 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /micromatch@4.0.5: @@ -11681,6 +14018,11 @@ packages: engines: {node: '>=6'} dev: true + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -12050,6 +14392,16 @@ packages: - supports-color dev: false + /motion@10.16.2: + resolution: {integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==} + dependencies: + '@motionone/animation': 10.15.1 + '@motionone/dom': 10.16.2 + '@motionone/svelte': 10.16.2 + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + '@motionone/vue': 10.16.2 + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -12098,6 +14450,9 @@ packages: dev: true optional: true + /multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + /multihashes@0.4.21: resolution: {integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==} dependencies: @@ -12130,6 +14485,14 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + /nano-json-stream-parser@0.1.2: resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} dev: true @@ -12207,14 +14570,25 @@ packages: /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.0 + dev: true + /node-addon-api@2.0.2: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} - dev: true /node-addon-api@3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} dev: true + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: true + /node-emoji@1.11.0: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} dependencies: @@ -12228,6 +14602,17 @@ packages: is-stream: 1.1.0 dev: true + /node-fetch@2.6.12: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + /node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} @@ -12239,10 +14624,18 @@ packages: dependencies: whatwg-url: 5.0.0 + /node-fetch@3.3.1: + resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + dev: true + /node-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} hasBin: true - dev: true /node-gyp@9.4.0: resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} @@ -12502,6 +14895,13 @@ packages: path-key: 3.1.1 dev: true + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -12534,6 +14934,10 @@ packages: bn.js: 4.11.6 strip-hex-prefix: 1.0.0 + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + /nx-cloud@16.1.0: resolution: {integrity: sha512-2K5OuJ4MEDrn2solje2X+a3UxSCdfR5PIscCRQbBANyvJfl3hGJSTxz0n5xeJJX4cKcQlfAxDQFRH6DHNdTGPQ==} hasBin: true @@ -12680,7 +15084,7 @@ packages: find-up: 4.1.0 foreground-child: 2.0.0 get-package-type: 0.1.0 - glob: 7.2.0 + glob: 7.2.3 istanbul-lib-coverage: 3.0.0 istanbul-lib-hook: 3.0.0 istanbul-lib-instrument: 4.0.3 @@ -12731,7 +15135,6 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - dev: true /object-keys@0.4.0: resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} @@ -12814,6 +15217,9 @@ packages: dev: true optional: true + /on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + /on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -12844,6 +15250,13 @@ packages: mimic-fn: 2.1.0 dev: true + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + /open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -12897,6 +15310,21 @@ packages: wcwidth: 1.0.1 dev: true + /ora@6.3.1: + resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.0 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + strip-ansi: 7.1.0 + wcwidth: 1.0.1 + dev: true + /os-homedir@1.0.2: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} @@ -12985,6 +15413,13 @@ packages: dependencies: p-limit: 3.1.0 + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + /p-map-series@2.1.0: resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} engines: {node: '>=8'} @@ -13124,6 +15559,13 @@ packages: - supports-color dev: true + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.0 + dev: true + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -13201,10 +15643,23 @@ packages: parse-path: 7.0.0 dev: true + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.0 + dev: true + /pascalcase@0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} @@ -13255,6 +15710,13 @@ packages: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.0 + dev: true + /path-exists@2.1.0: resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} engines: {node: '>=0.10.0'} @@ -13271,6 +15733,11 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -13284,6 +15751,11 @@ packages: engines: {node: '>=8'} dev: true + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -13360,7 +15832,6 @@ packages: /pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - dev: true /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} @@ -13369,7 +15840,6 @@ packages: /pify@5.0.0: resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} engines: {node: '>=10'} - dev: true /pinkie-promise@2.0.1: resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} @@ -13383,6 +15853,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + /pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + dependencies: + duplexify: 4.1.2 + split2: 4.2.0 + /pino-multi-stream@5.3.0: resolution: {integrity: sha512-4fAGCRll18I+JmoAbxDvU9zc5sera/3c+VgTtUdoNMOZ/VSHB+HMAYtixKpeRmZTDHDDdE2rtwjVkuwWB8mYQA==} deprecated: No longer supported. Use the multi-stream support in the latest core Pino @@ -13408,6 +15884,9 @@ packages: resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==} dev: false + /pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + /pino@6.13.1: resolution: {integrity: sha512-QQf67BU+cANnc/2U+wzUV20UjO5oBryWpnNyKshdLfT9BdeiXlh9wxLGmOjAuBWMYITdMs+BtJSQQNlGRNbWpA==} hasBin: true @@ -13421,6 +15900,27 @@ packages: sonic-boom: 1.4.1 dev: false + /pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.0.1 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + process-warning: 1.0.0 + quick-format-unescaped: 4.0.3 + real-require: 0.1.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 2.8.0 + thread-stream: 0.15.2 + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -13446,11 +15946,31 @@ packages: engines: {node: '>=4'} dev: true + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + /posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} dev: true + /postcss-load-config@4.0.1: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + yaml: 2.3.1 + dev: true + /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} @@ -13459,8 +15979,8 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss@8.4.24: - resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} + /postcss@8.4.26: + resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -13473,6 +15993,9 @@ packages: requiresBuild: true dev: true + /preact@10.16.0: + resolution: {integrity: sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==} + /precond@0.2.3: resolution: {integrity: sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==} engines: {node: '>= 0.6'} @@ -13557,13 +16080,21 @@ packages: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - dev: true /pretty-format@29.4.3: resolution: {integrity: sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.4.3 + '@jest/schemas': 29.6.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /pretty-format@29.6.1: + resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.0 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -13600,6 +16131,9 @@ packages: fromentries: 1.3.2 dev: true + /process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + /process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -13679,6 +16213,9 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 + /proxy-compare@2.5.1: + resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true @@ -13778,6 +16315,16 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + /qs@6.10.3: resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} engines: {node: '>=0.6'} @@ -13797,7 +16344,6 @@ packages: engines: {node: '>=0.6'} dependencies: side-channel: 1.0.4 - dev: true /qs@6.5.2: resolution: {integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==} @@ -13823,12 +16369,33 @@ packages: object-assign: 4.1.1 strict-uri-encode: 1.1.0 + /query-string@6.14.1: + resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + + /query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} /quick-format-unescaped@4.0.3: resolution: {integrity: sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==} - dev: false /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} @@ -13881,18 +16448,42 @@ packages: dev: true optional: true + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + + /react-error-boundary@3.1.4(react@18.2.0): + resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} + engines: {node: '>=10', npm: '>=6'} + peerDependencies: + react: '>=16.13.1' + dependencies: + '@babel/runtime': 7.22.5 + react: 18.2.0 + dev: true + /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true /react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + /read-cmd-shim@3.0.0: resolution: {integrity: sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -14082,6 +16673,10 @@ packages: picomatch: 2.3.0 dev: true + /real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -14105,7 +16700,6 @@ packages: /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: false /regenerator-transform@0.10.1: resolution: {integrity: sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==} @@ -14306,6 +16900,10 @@ packages: resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} dev: true + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -14370,6 +16968,14 @@ packages: signal-exit: 3.0.7 dev: true + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /resumer@0.0.0: resolution: {integrity: sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==} dependencies: @@ -14441,6 +17047,29 @@ packages: fsevents: 2.3.2 dev: true + /rollup@3.26.3: + resolution: {integrity: sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /rpc-websockets@7.5.1: + resolution: {integrity: sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==} + dependencies: + '@babel/runtime': 7.22.5 + eventemitter3: 4.0.7 + uuid: 8.3.2 + ws: 8.13.0(bufferutil@4.0.3)(utf-8-validate@5.0.5) + optionalDependencies: + bufferutil: 4.0.3 + utf-8-validate: 5.0.5 + + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -14460,7 +17089,6 @@ packages: engines: {npm: '>=2.0.0'} dependencies: tslib: 1.14.1 - dev: true /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -14491,6 +17119,9 @@ packages: events: 3.3.0 dev: true + /safe-json-utils@1.1.1: + resolution: {integrity: sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==} + /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: @@ -14510,6 +17141,10 @@ packages: regexp-tree: 0.1.24 dev: true + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -14523,6 +17158,18 @@ packages: source-map-js: 1.0.2 dev: true + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + /scrypt-js@3.0.1: resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} @@ -14605,7 +17252,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /send@0.17.1: resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==} @@ -14650,6 +17296,14 @@ packages: dev: true optional: true + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.0 + upper-case-first: 2.0.2 + dev: true + /serialize-javascript@5.0.1: resolution: {integrity: sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==} dependencies: @@ -14736,7 +17390,6 @@ packages: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 - dev: true /shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} @@ -14880,6 +17533,13 @@ packages: yargs: 15.4.1 dev: false + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.0 + dev: true + /snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} engines: {node: '>=0.10.0'} @@ -15028,6 +17688,11 @@ packages: atomic-sleep: 1.0.0 dev: true + /sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} + dependencies: + atomic-sleep: 1.0.0 + /sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} @@ -15084,6 +17749,13 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + /sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead @@ -15126,6 +17798,10 @@ packages: /spdx-license-ids@3.0.10: resolution: {integrity: sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==} + /split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + /split-string@3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} @@ -15138,6 +17814,10 @@ packages: dependencies: readable-stream: 3.6.2 + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + /split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} dependencies: @@ -15176,6 +17856,13 @@ packages: minipass: 3.3.6 dev: true + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true @@ -15208,14 +17895,33 @@ packages: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: true + /stealthy-require@1.1.1: resolution: {integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==} engines: {node: '>=0.10.0'} dev: false + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: false + + /stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + /stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: false /stream-to-pull-stream@1.7.3: resolution: {integrity: sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==} @@ -15234,6 +17940,10 @@ packages: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} engines: {node: '>=0.10.0'} + /strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + /string-argv@0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} @@ -15385,6 +18095,11 @@ packages: engines: {node: '>=6'} dev: true + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-hex-prefix@1.0.0: resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} engines: {node: '>=6.5.0', npm: '>=3'} @@ -15423,6 +18138,20 @@ packages: through: 2.3.8 dev: true + /sucrase@3.33.0: + resolution: {integrity: sha512-ARGC7vbufOHfpvyGcZZXFaXCMZ9A4fffOGC5ucOW7+WHDGlAe8LJdf3Jts1sWhDeiI1RSWrKy5Hodl+JWGdW2A==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.1.6 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + /superagent@6.1.0: resolution: {integrity: sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==} engines: {node: '>= 7.0.0'} @@ -15443,6 +18172,13 @@ packages: - supports-color dev: true + /superstruct@0.14.2: + resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==} + + /superstruct@1.0.3: + resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==} + engines: {node: '>=14.0.0'} + /supertest@6.1.6: resolution: {integrity: sha512-0hACYGNJ8OHRg8CRITeZOdbjur7NLuNs0mBjVhdpxi7hP6t3QIbOzLON5RTUmZcy2I9riuII3+Pr2C7yztrIIg==} engines: {node: '>=6.0.0'} @@ -15509,6 +18245,10 @@ packages: dev: true optional: true + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + /table@6.8.1: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} @@ -15632,6 +18372,9 @@ packages: deprecated: testrpc has been renamed to ganache-cli, please use this package from now on. dev: true + /text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + /text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -15641,6 +18384,24 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + dependencies: + real-require: 0.1.0 + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -15663,7 +18424,6 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true /timed-out@4.0.1: resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} @@ -15673,16 +18433,30 @@ packages: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true + /tinybench@2.5.0: + resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} + dev: true + /tinypool@0.3.1: resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} engines: {node: '>=14.0.0'} dev: true + /tinypool@0.6.0: + resolution: {integrity: sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ==} + engines: {node: '>=14.0.0'} + dev: true + /tinyspy@1.0.2: resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} engines: {node: '>=14.0.0'} dev: true + /tinyspy@2.1.1: + resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + engines: {node: '>=14.0.0'} + dev: true + /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -15750,6 +18524,9 @@ packages: safe-regex: 1.1.0 dev: true + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + /toidentifier@1.0.0: resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} engines: {node: '>=0.6'} @@ -15766,13 +18543,41 @@ packages: psl: 1.8.0 punycode: 2.3.0 + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.8.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.0 + dev: true + + /tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} + dependencies: + punycode: 2.3.0 + dev: true + /traverse@0.6.6: resolution: {integrity: sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==} dev: true + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + /treeify@1.1.0: resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} engines: {node: '>=0.6'} @@ -15834,6 +18639,10 @@ packages: ts-essentials: 1.0.4 dev: true + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /ts-mocha@10.0.0(mocha@8.4.0): resolution: {integrity: sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==} engines: {node: '>= 6.X.X'} @@ -15862,10 +18671,10 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.8 - '@tsconfig/node12': 1.0.9 - '@tsconfig/node14': 1.0.1 - '@tsconfig/node16': 1.0.2 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 '@types/node': 12.20.55 acorn: 8.9.0 acorn-walk: 8.2.0 @@ -15893,10 +18702,10 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.8 - '@tsconfig/node12': 1.0.9 - '@tsconfig/node14': 1.0.1 - '@tsconfig/node16': 1.0.2 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 '@types/node': 12.20.55 acorn: 8.9.0 acorn-walk: 8.2.0 @@ -15943,7 +18752,7 @@ packages: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: '@types/json5': 0.0.29 - json5: 1.0.1 + json5: 1.0.2 minimist: 1.2.6 strip-bom: 3.0.0 dev: true @@ -15990,12 +18799,47 @@ packages: /tslib@2.6.0: resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} - dev: true /tsort@0.0.1: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} dev: true + /tsup@7.1.0(typescript@4.9.3): + resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} + engines: {node: '>=16.14'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.1(esbuild@0.18.13) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4(supports-color@8.1.1) + esbuild: 0.18.13 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.1 + resolve-from: 5.0.0 + rollup: 3.25.1 + source-map: 0.8.0-beta.0 + sucrase: 3.33.0 + tree-kill: 1.2.2 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsutils@3.21.0(typescript@4.9.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -16170,7 +19014,6 @@ packages: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 - dev: true /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} @@ -16183,7 +19026,7 @@ packages: peerDependencies: typescript: 4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x dependencies: - glob: 7.2.0 + glob: 7.2.3 lunr: 2.3.9 marked: 4.0.12 minimatch: 5.0.1 @@ -16236,6 +19079,11 @@ packages: dev: true optional: true + /uint8arrays@3.1.1: + resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} + dependencies: + multiformats: 9.9.0 + /ultron@1.1.1: resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} dev: true @@ -16345,6 +19193,11 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -16392,6 +19245,18 @@ packages: resolution: {integrity: sha512-BpRZMZpgXLuTiKeiu7kK0nIPwGdyrqrs6EDSaXtjD/aQ2T+qVo9a5hRC3HN3iJjCMxNT/VxoLGQ7E/OzE5ucnw==} dev: true + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: 2.6.0 + dev: true + + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + dependencies: + tslib: 2.6.0 + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -16422,6 +19287,13 @@ packages: dev: true optional: true + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + /url-set-query@1.0.0: resolution: {integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==} @@ -16443,6 +19315,13 @@ packages: qs: 6.11.2 dev: true + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -16453,7 +19332,6 @@ packages: requiresBuild: true dependencies: node-gyp-build: 4.6.0 - dev: true /utf8@3.0.0: resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} @@ -16473,6 +19351,16 @@ packages: safe-array-concat: 1.0.0 dev: true + /util@0.12.4: + resolution: {integrity: sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.10 + safe-buffer: 5.2.1 + which-typed-array: 1.1.9 + /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -16492,7 +19380,6 @@ packages: /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - dev: true /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -16528,6 +19415,33 @@ packages: builtins: 5.0.1 dev: true + /valtio@1.10.5(react@18.2.0): + resolution: {integrity: sha512-jTp0k63VXf4r5hPoaC6a6LCG4POkVSh629WLi1+d5PlajLsbynTMd7qAgEiOSPxzoX5iNvbN7iZ/k/g29wrNiQ==} + engines: {node: '>=12.20.0'} + peerDependencies: + react: '>=16.8' + peerDependenciesMeta: + react: + optional: true + dependencies: + proxy-compare: 2.5.1 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + + /valtio@1.10.6(react@18.2.0): + resolution: {integrity: sha512-SxN1bHUmdhW6V8qsQTpCgJEwp7uHbntuH0S9cdLQtiohuevwBksbpXjwj5uDMA7bLwg1WKyq9sEpZrx3TIMrkA==} + engines: {node: '>=12.20.0'} + peerDependencies: + react: '>=16.8' + peerDependenciesMeta: + react: + optional: true + dependencies: + proxy-compare: 2.5.1 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: true + /varint@5.0.2: resolution: {integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==} dev: true @@ -16578,6 +19492,29 @@ packages: - typescript - utf-8-validate - zod + + /viem@1.3.0(typescript@4.9.3)(zod@3.21.4): + resolution: {integrity: sha512-gCtachbNPG9G9D7UNuiqLaLf8IFV15FypBrSpXEFeeEczXxI+Jgi9FTwDS+NJLreVrjBeZXQVj1ITTqKpItw4w==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@adraffy/ens-normalize': 1.9.0 + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@scure/bip32': 1.3.0 + '@scure/bip39': 1.2.0 + '@wagmi/chains': 1.6.0(typescript@4.9.3) + abitype: 0.8.11(typescript@4.9.3)(zod@3.21.4) + isomorphic-ws: 5.0.0(ws@8.12.0) + typescript: 4.9.3 + ws: 8.12.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod dev: true /vite-node@0.28.3(@types/node@17.0.21): @@ -16592,10 +19529,33 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.0.4(@types/node@17.0.21) + vite: 4.4.3(@types/node@17.0.21) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-node@0.33.0(@types/node@12.20.55): + resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4(supports-color@8.1.1) + mlly: 1.4.0 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 4.4.3(@types/node@12.20.55) transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss @@ -16603,13 +19563,86 @@ packages: - terser dev: true - /vite@4.0.4(@types/node@17.0.21): - resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + /vite@4.4.3(@types/node@12.20.20): + resolution: {integrity: sha512-IMnXQXXWgLi5brBQx/4WzDxdzW0X3pjO4nqFJAuNvwKtxzAmPzFE1wszW3VDpAGQJm3RZkm/brzRdyGsnwgJIA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 12.20.20 + esbuild: 0.18.13 + postcss: 8.4.26 + rollup: 3.26.3 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite@4.4.3(@types/node@12.20.55): + resolution: {integrity: sha512-IMnXQXXWgLi5brBQx/4WzDxdzW0X3pjO4nqFJAuNvwKtxzAmPzFE1wszW3VDpAGQJm3RZkm/brzRdyGsnwgJIA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 12.20.55 + esbuild: 0.18.13 + postcss: 8.4.26 + rollup: 3.26.3 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite@4.4.3(@types/node@17.0.21): + resolution: {integrity: sha512-IMnXQXXWgLi5brBQx/4WzDxdzW0X3pjO4nqFJAuNvwKtxzAmPzFE1wszW3VDpAGQJm3RZkm/brzRdyGsnwgJIA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -16619,6 +19652,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -16629,10 +19664,9 @@ packages: optional: true dependencies: '@types/node': 17.0.21 - esbuild: 0.16.17 - postcss: 8.4.24 - resolve: 1.22.2 - rollup: 3.25.1 + esbuild: 0.18.13 + postcss: 8.4.26 + rollup: 3.26.3 optionalDependencies: fsevents: 2.3.2 dev: true @@ -16680,11 +19714,78 @@ packages: tinybench: 2.3.1 tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.0.4(@types/node@17.0.21) + vite: 4.4.3(@types/node@17.0.21) vite-node: 0.28.3(@types/node@17.0.21) why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vitest@0.33.0(jsdom@22.1.0): + resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.5 + '@types/chai-subset': 1.3.3 + '@types/node': 12.20.55 + '@vitest/expect': 0.33.0 + '@vitest/runner': 0.33.0 + '@vitest/snapshot': 0.33.0 + '@vitest/spy': 0.33.0 + '@vitest/utils': 0.33.0 + acorn: 8.9.0 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4(supports-color@8.1.1) + jsdom: 22.1.0 + local-pkg: 0.4.3 + magic-string: 0.30.1 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.3.3 + strip-literal: 1.0.1 + tinybench: 2.5.0 + tinypool: 0.6.0 + vite: 4.4.3(@types/node@12.20.55) + vite-node: 0.33.0(@types/node@12.20.55) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss - sass - stylus - sugarss @@ -16700,6 +19801,45 @@ packages: resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} dev: true + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /wagmi@1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + resolution: {integrity: sha512-+2UkZG9eA3tKqXj1wvlvI8mL0Bcff7Tf5CKfUOyQsdKcY+J5rfwYYya25G+jja57umpHFtfxRaL7xDkNjehrRg==} + peerDependencies: + react: '>=17.0.0' + typescript: '>=4.9.4' + viem: ~0.3.18 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@tanstack/query-sync-storage-persister': 4.29.25 + '@tanstack/react-query': 4.29.25(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-query-persist-client': 4.29.25(@tanstack/react-query@4.29.25) + '@wagmi/core': 1.0.1(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + abitype: 0.8.1(typescript@4.9.3) + react: 18.2.0 + typescript: 4.9.3 + use-sync-external-store: 1.2.0(react@18.2.0) + viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - immer + - lokijs + - react-dom + - react-native + - supports-color + - utf-8-validate + - zod + /walk-up-path@1.0.0: resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} dev: true @@ -16709,6 +19849,11 @@ packages: dependencies: defaults: 1.0.3 + /web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + dev: true + /web3-bzz@1.2.11: resolution: {integrity: sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==} engines: {node: '>=8.0.0'} @@ -17043,6 +20188,15 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + /websocket@1.0.32: resolution: {integrity: sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==} engines: {node: '>=4.0.0'} @@ -17072,6 +20226,13 @@ packages: dev: true optional: true + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + /whatwg-fetch@2.0.4: resolution: {integrity: sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==} dev: true @@ -17080,12 +20241,33 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: true + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@12.0.1: + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} + dependencies: + tr46: 4.1.1 + webidl-conversions: 7.0.0 + dev: true + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -17095,6 +20277,15 @@ packages: is-string: 1.0.7 is-symbol: 1.0.4 + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: false + /which-module@1.0.0: resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} dev: true @@ -17330,7 +20521,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /ws@8.12.0: resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} @@ -17343,7 +20533,21 @@ packages: optional: true utf-8-validate: optional: true - dev: true + + /ws@8.13.0(bufferutil@4.0.3)(utf-8-validate@5.0.5): + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + bufferutil: 4.0.3 + utf-8-validate: 5.0.5 /xhr-request-promise@0.1.3: resolution: {integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==} @@ -17376,6 +20580,15 @@ packages: parse-headers: 2.0.4 xtend: 4.0.2 + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + /xtend@2.1.2: resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==} engines: {node: '>=0.4'} @@ -17413,13 +20626,17 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} + dev: true + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -17546,8 +20763,26 @@ packages: /zod@3.20.2: resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==} + + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: true + /zustand@4.3.9(react@18.2.0): + resolution: {integrity: sha512-Tat5r8jOMG1Vcsj8uldMyqYKC5IZvQif8zetmLHs9WoZlntTHmIoNM8TpLRY31ExncuUvUOXehd0kvahkuHjDw==} + engines: {node: '>=12.7.0'} + peerDependencies: + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + immer: + optional: true + react: + optional: true + dependencies: + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + /zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} dev: true From ae22fe002102c23e7dd07c410662fb7d5a146178 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Thu, 13 Jul 2023 17:22:27 -0700 Subject: [PATCH 02/12] feat: Disable typechecker because it's slow --- .circleci/config.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6464993d37fa..55d3eca1a13a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -726,9 +726,6 @@ jobs: name: Check generated and build command: pnpm generate:check working_directory: packages/contracts-ts - - run: - name: typecheck - command: pnpm typecheck sdk-next-tests: docker: From 016407618be874a3a28a4b71435e767290b182fd Mon Sep 17 00:00:00 2001 From: Will Cory Date: Fri, 14 Jul 2023 09:41:15 -0700 Subject: [PATCH 03/12] feat: Add bindings passthrough script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index ed51f0fd40b0..0e668b221aba 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "scripts": { "clean": "npx nx run-many --target=clean", + "bindings": "nx bindings @eth-optimism/contracts-bedrock", "build": "npx nx run-many --target=build", "test": "npx nx run-many --target=test", "lint": "npx nx run-many --target=lint", From bdebac044105203be2b424054b72396a37e2394a Mon Sep 17 00:00:00 2001 From: Will Cory Date: Fri, 14 Jul 2023 09:44:39 -0700 Subject: [PATCH 04/12] feat: Remove unnecessary index.ts --- packages/contracts-ts/package.json | 12 ++++++------ packages/contracts-ts/src/index.ts | 1 - packages/contracts-ts/tsup.config.ts | 4 +++- 3 files changed, 9 insertions(+), 8 deletions(-) delete mode 100644 packages/contracts-ts/src/index.ts diff --git a/packages/contracts-ts/package.json b/packages/contracts-ts/package.json index 404056c0c698..2a4bd487dd8c 100644 --- a/packages/contracts-ts/package.json +++ b/packages/contracts-ts/package.json @@ -10,14 +10,14 @@ }, "homepage": "https://optimism.io", "type": "module", - "main": "dist/index.js", - "module": "dist/index.mjs", - "types": "src/index.ts", + "main": "dist/constants.js", + "module": "dist/constants.mjs", + "types": "src/constants.ts", "exports": { ".": { - "types": "./src/index.ts", - "import": "./dist/index.js", - "require": "./dist/index.cjs" + "types": "./src/constants.ts", + "import": "./dist/constants.js", + "require": "./dist/constants.cjs" }, "./actions": { "types": "./src/actions.ts", diff --git a/packages/contracts-ts/src/index.ts b/packages/contracts-ts/src/index.ts deleted file mode 100644 index f87cf0102a14..000000000000 --- a/packages/contracts-ts/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './constants' diff --git a/packages/contracts-ts/tsup.config.ts b/packages/contracts-ts/tsup.config.ts index b3fb66bf0595..e65e25b79694 100644 --- a/packages/contracts-ts/tsup.config.ts +++ b/packages/contracts-ts/tsup.config.ts @@ -1,7 +1,8 @@ import { defineConfig } from 'tsup' +import packageJson from './package.json' export default defineConfig({ - name: '@eth-optimsim/contracts-ts', + name: packageJson.name, entry: ['src/index.ts', 'src/actions.ts', 'src/react.ts'], outDir: 'dist', format: ['esm', 'cjs'], @@ -9,3 +10,4 @@ export default defineConfig({ sourcemap: true, clean: false, }) + From a83abe4b76662f567dd0237e7bc64bdfdefbc458 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Fri, 14 Jul 2023 10:19:45 -0700 Subject: [PATCH 05/12] chore: Add comment to keep in sync with op bindings --- op-bindings/predeploys/addresses.go | 3 +++ packages/contracts-ts/wagmi.config.ts | 1 + 2 files changed, 4 insertions(+) diff --git a/op-bindings/predeploys/addresses.go b/op-bindings/predeploys/addresses.go index 1a33a519f002..bb3edf287e8f 100644 --- a/op-bindings/predeploys/addresses.go +++ b/op-bindings/predeploys/addresses.go @@ -2,6 +2,9 @@ package predeploys import "github.com/ethereum/go-ethereum/common" +// TODO - we should get a single toml yaml or json file source of truth in @eth-optimism/bedrock package +// This needs to be kept in sync with @eth-optimism/contracts-ts/wagmi.config.ts which also specifies this +// To improve robustness and maintainability contracts-bedrock should export all addresses const ( L2ToL1MessagePasser = "0x4200000000000000000000000000000000000016" DeployerWhitelist = "0x4200000000000000000000000000000000000002" diff --git a/packages/contracts-ts/wagmi.config.ts b/packages/contracts-ts/wagmi.config.ts index 79a5f4747474..c7fe447d9139 100644 --- a/packages/contracts-ts/wagmi.config.ts +++ b/packages/contracts-ts/wagmi.config.ts @@ -8,6 +8,7 @@ import { isDeepStrictEqual } from 'util' /** * Predeployed contract addresses * In future it would be nice to have a json file in contracts bedrock be generated as source of truth + * Keep this in sync with op-bindings/predeploys/addresses.go in meantime */ const predeployContracts = { LegacyMessagePasser: { From 270d80b4c5a2a82fe5601136b005f62699e88fba Mon Sep 17 00:00:00 2001 From: Will Cory Date: Fri, 14 Jul 2023 15:24:39 -0700 Subject: [PATCH 06/12] feat: generate addresses in the contracts-bedrock package --- packages/contracts-bedrock/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/contracts-bedrock/package.json b/packages/contracts-bedrock/package.json index 2d21a3249ed5..291d55e5474e 100644 --- a/packages/contracts-bedrock/package.json +++ b/packages/contracts-bedrock/package.json @@ -10,7 +10,7 @@ ], "scripts": { "bindings": "pnpm bindings:ts && pnpm bindings:go", - "bindings:ts": "nx generate @eth-optimism/contracts-ts", + "bindings:ts": "pnpm generate:addresses && nx generate @eth-optimism/contracts-ts", "bindings:go": "cd ../../op-bindings && make", "build": "nx build:contracts", "prebuild:contracts": "./scripts/verify-foundry-install.sh", From 5f03cdff3f300d1d494675a85a97f17be8fe4359 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Mon, 17 Jul 2023 19:40:40 -0700 Subject: [PATCH 07/12] regenerate --- packages/contracts-ts/abis.json | 10516 +++++--- packages/contracts-ts/addresses.json | 59 +- packages/contracts-ts/package.json | 2 +- packages/contracts-ts/src/actions.ts | 12547 ++++++--- packages/contracts-ts/src/constants.ts | 17039 +++++++----- packages/contracts-ts/src/react.ts | 31663 +++++++++++++++-------- packages/contracts-ts/tsup.config.ts | 1 - 7 files changed, 47346 insertions(+), 24481 deletions(-) diff --git a/packages/contracts-ts/abis.json b/packages/contracts-ts/abis.json index 9e1fc81174b7..11b256460b57 100644 --- a/packages/contracts-ts/abis.json +++ b/packages/contracts-ts/abis.json @@ -115,14 +115,14 @@ "outputs": [] } ], - "L1CrossDomainMessenger": [ + "AssetReceiver": [ { "stateMutability": "nonpayable", "type": "constructor", "inputs": [ { - "name": "_portal", - "internalType": "contract OptimismPortal", + "name": "_owner", + "internalType": "address", "type": "address" } ] @@ -132,184 +132,196 @@ "anonymous": false, "inputs": [ { - "name": "msgHash", - "internalType": "bytes32", - "type": "bytes32", + "name": "user", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", "indexed": true } ], - "name": "FailedRelayedMessage" + "name": "OwnerUpdated" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "version", - "internalType": "uint8", - "type": "uint8", + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", "indexed": false } ], - "name": "Initialized" + "name": "ReceivedETH" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "msgHash", - "internalType": "bytes32", - "type": "bytes32", + "name": "withdrawer", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "recipient", + "internalType": "address", + "type": "address", "indexed": true + }, + { + "name": "asset", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false } ], - "name": "RelayedMessage" + "name": "WithdrewERC20" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "target", + "name": "withdrawer", "internalType": "address", "type": "address", "indexed": true }, { - "name": "sender", + "name": "recipient", "internalType": "address", "type": "address", - "indexed": false - }, - { - "name": "message", - "internalType": "bytes", - "type": "bytes", - "indexed": false + "indexed": true }, { - "name": "messageNonce", - "internalType": "uint256", - "type": "uint256", - "indexed": false + "name": "asset", + "internalType": "address", + "type": "address", + "indexed": true }, { - "name": "gasLimit", + "name": "id", "internalType": "uint256", "type": "uint256", "indexed": false } ], - "name": "SentMessage" + "name": "WithdrewERC721" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "sender", + "name": "withdrawer", "internalType": "address", "type": "address", "indexed": true }, { - "name": "value", + "name": "recipient", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", "internalType": "uint256", "type": "uint256", "indexed": false } ], - "name": "SentMessageExtension1" + "name": "WithdrewETH" }, { - "stateMutability": "view", + "stateMutability": "payable", "type": "function", - "inputs": [], - "name": "MESSAGE_VERSION", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "uint16", - "type": "uint16" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "MIN_GAS_CALLDATA_OVERHEAD", - "outputs": [ + "name": "_target", + "internalType": "address", + "type": "address" + }, { - "name": "", - "internalType": "uint64", - "type": "uint64" + "name": "_data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_gas", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR", + ], + "name": "CALL", "outputs": [ { "name": "", - "internalType": "uint64", - "type": "uint64" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR", - "outputs": [ + "internalType": "bool", + "type": "bool" + }, { "name": "", - "internalType": "uint64", - "type": "uint64" + "internalType": "bytes", + "type": "bytes" } ] }, { - "stateMutability": "view", + "stateMutability": "payable", "type": "function", - "inputs": [], - "name": "OTHER_MESSENGER", - "outputs": [ + "inputs": [ { - "name": "", + "name": "_target", "internalType": "address", "type": "address" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_gas", + "internalType": "uint256", + "type": "uint256" } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "PORTAL", + ], + "name": "DELEGATECALL", "outputs": [ { "name": "", - "internalType": "contract OptimismPortal", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "RELAY_CALL_OVERHEAD", - "outputs": [ + "internalType": "bool", + "type": "bool" + }, { "name": "", - "internalType": "uint64", - "type": "uint64" + "internalType": "bytes", + "type": "bytes" } ] }, @@ -317,176 +329,211 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "RELAY_CONSTANT_OVERHEAD", + "name": "owner", "outputs": [ { "name": "", - "internalType": "uint64", - "type": "uint64" + "internalType": "address", + "type": "address" } ] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "RELAY_GAS_CHECK_BUFFER", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "uint64", - "type": "uint64" + "name": "newOwner", + "internalType": "address", + "type": "address" } - ] + ], + "name": "setOwner", + "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "RELAY_RESERVED_GAS", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "uint64", - "type": "uint64" + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" } - ] + ], + "name": "withdrawERC20", + "outputs": [] }, { - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_message", - "internalType": "bytes", - "type": "bytes" + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" }, { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" + "name": "_to", + "internalType": "address", + "type": "address" } ], - "name": "baseGas", - "outputs": [ - { - "name": "", - "internalType": "uint64", - "type": "uint64" - } - ] + "name": "withdrawERC20", + "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "", - "internalType": "bytes32", - "type": "bytes32" - } - ], - "name": "failedMessages", - "outputs": [ + "name": "_asset", + "internalType": "contract ERC721", + "type": "address" + }, { - "name": "", - "internalType": "bool", - "type": "bool" - } - ] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "initialize", - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "messageNonce", - "outputs": [ + "name": "_to", + "internalType": "address", + "type": "address" + }, { - "name": "", + "name": "_id", "internalType": "uint256", "type": "uint256" } - ] + ], + "name": "withdrawERC721", + "outputs": [] }, { - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_nonce", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_sender", - "internalType": "address", - "type": "address" - }, - { - "name": "_target", - "internalType": "address", + "name": "_to", + "internalType": "address payable", "type": "address" }, { - "name": "_value", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_minGasLimit", + "name": "_amount", "internalType": "uint256", "type": "uint256" - }, - { - "name": "_message", - "internalType": "bytes", - "type": "bytes" } ], - "name": "relayMessage", + "name": "withdrawETH", "outputs": [] }, { - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_target", - "internalType": "address", + "name": "_to", + "internalType": "address payable", "type": "address" - }, + } + ], + "name": "withdrawETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "CheckBalanceHigh": [ + { + "type": "event", + "anonymous": false, + "inputs": [ { - "name": "_message", + "name": "params", + "internalType": "struct CheckBalanceHigh.Params", + "type": "tuple", + "components": [ + { + "name": "target", + "internalType": "address", + "type": "address" + }, + { + "name": "threshold", + "internalType": "uint256", + "type": "uint256" + } + ], + "indexed": false + } + ], + "name": "_EventToExposeStructInABI__Params" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_params", "internalType": "bytes", "type": "bytes" - }, + } + ], + "name": "check", + "outputs": [ { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + } + ], + "CheckBalanceLow": [ + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "params", + "internalType": "struct CheckBalanceLow.Params", + "type": "tuple", + "components": [ + { + "name": "target", + "internalType": "address", + "type": "address" + }, + { + "name": "threshold", + "internalType": "uint256", + "type": "uint256" + } + ], + "indexed": false } ], - "name": "sendMessage", - "outputs": [] + "name": "_EventToExposeStructInABI__Params" }, { "stateMutability": "view", "type": "function", "inputs": [ { - "name": "", - "internalType": "bytes32", - "type": "bytes32" + "name": "_params", + "internalType": "bytes", + "type": "bytes" } ], - "name": "successfulMessages", + "name": "check", "outputs": [ { "name": "", @@ -494,46 +541,87 @@ "type": "bool" } ] + } + ], + "CheckGelatoLow": [ + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "params", + "internalType": "struct CheckGelatoLow.Params", + "type": "tuple", + "components": [ + { + "name": "treasury", + "internalType": "address", + "type": "address" + }, + { + "name": "threshold", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "recipient", + "internalType": "address", + "type": "address" + } + ], + "indexed": false + } + ], + "name": "_EventToExposeStructInABI__Params" }, { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "version", + "inputs": [ + { + "name": "_params", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "check", "outputs": [ { "name": "", - "internalType": "string", - "type": "string" + "internalType": "bool", + "type": "bool" } ] - }, + } + ], + "CheckTrue": [ { - "stateMutability": "view", + "stateMutability": "pure", "type": "function", - "inputs": [], - "name": "xDomainMessageSender", + "inputs": [ + { + "name": "", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "check", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "bool", + "type": "bool" } ] } ], - "L1ERC721Bridge": [ + "Drippie": [ { "stateMutability": "nonpayable", "type": "constructor", "inputs": [ { - "name": "_messenger", - "internalType": "address", - "type": "address" - }, - { - "name": "_otherBridge", + "name": "_owner", "internalType": "address", "type": "address" } @@ -544,683 +632,528 @@ "anonymous": false, "inputs": [ { - "name": "localToken", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "remoteToken", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "from", - "internalType": "address", - "type": "address", + "name": "nameref", + "internalType": "string", + "type": "string", "indexed": true }, { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": false - }, - { - "name": "tokenId", - "internalType": "uint256", - "type": "uint256", - "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", + "name": "name", + "internalType": "string", + "type": "string", "indexed": false - } - ], - "name": "ERC721BridgeFinalized" - }, - { - "type": "event", - "anonymous": false, - "inputs": [ - { - "name": "localToken", - "internalType": "address", - "type": "address", - "indexed": true }, { - "name": "remoteToken", - "internalType": "address", - "type": "address", - "indexed": true - }, + "name": "config", + "internalType": "struct Drippie.DripConfig", + "type": "tuple", + "components": [ + { + "name": "reentrant", + "internalType": "bool", + "type": "bool" + }, + { + "name": "interval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ], + "indexed": false + } + ], + "name": "DripCreated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ { - "name": "from", - "internalType": "address", - "type": "address", + "name": "nameref", + "internalType": "string", + "type": "string", "indexed": true }, { - "name": "to", + "name": "name", + "internalType": "string", + "type": "string", + "indexed": false + }, + { + "name": "executor", "internalType": "address", "type": "address", "indexed": false }, { - "name": "tokenId", + "name": "timestamp", "internalType": "uint256", "type": "uint256", "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false } ], - "name": "ERC721BridgeInitiated" + "name": "DripExecuted" }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_remoteToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_tokenId", - "internalType": "uint256", - "type": "uint256" + "name": "nameref", + "internalType": "string", + "type": "string", + "indexed": true }, { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" + "name": "name", + "internalType": "string", + "type": "string", + "indexed": false }, { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8", + "indexed": false } ], - "name": "bridgeERC721", - "outputs": [] + "name": "DripStatusUpdated" }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_remoteToken", + "name": "user", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "_to", + "name": "newOwner", "internalType": "address", - "type": "address" - }, - { - "name": "_tokenId", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "type": "address", + "indexed": true } ], - "name": "bridgeERC721To", - "outputs": [] + "name": "OwnerUpdated" }, { - "stateMutability": "view", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "", - "internalType": "address", - "type": "address" - }, - { - "name": "", + "name": "from", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "", + "name": "amount", "internalType": "uint256", - "type": "uint256" + "type": "uint256", + "indexed": false } ], - "name": "deposits", - "outputs": [ - { - "name": "", - "internalType": "bool", - "type": "bool" - } - ] + "name": "ReceivedETH" }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_remoteToken", + "name": "withdrawer", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "_from", + "name": "recipient", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "_to", + "name": "asset", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "_tokenId", + "name": "amount", "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "type": "uint256", + "indexed": false } ], - "name": "finalizeBridgeERC721", - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "messenger", - "outputs": [ - { - "name": "", - "internalType": "contract CrossDomainMessenger", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "otherBridge", - "outputs": [ - { - "name": "", - "internalType": "address", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "internalType": "string", - "type": "string" - } - ] - } - ], - "L1StandardBridge": [ - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [ - { - "name": "_messenger", - "internalType": "address payable", - "type": "address" - } - ] + "name": "WithdrewERC20" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "localToken", + "name": "withdrawer", "internalType": "address", "type": "address", "indexed": true }, { - "name": "remoteToken", + "name": "recipient", "internalType": "address", "type": "address", "indexed": true }, { - "name": "from", + "name": "asset", "internalType": "address", "type": "address", "indexed": true }, { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": false - }, - { - "name": "amount", + "name": "id", "internalType": "uint256", "type": "uint256", "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false } ], - "name": "ERC20BridgeFinalized" + "name": "WithdrewERC721" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "localToken", + "name": "withdrawer", "internalType": "address", "type": "address", "indexed": true }, { - "name": "remoteToken", + "name": "recipient", "internalType": "address", "type": "address", "indexed": true }, - { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": false - }, { "name": "amount", "internalType": "uint256", "type": "uint256", "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false } ], - "name": "ERC20BridgeInitiated" + "name": "WithdrewETH" }, { - "type": "event", - "anonymous": false, + "stateMutability": "payable", + "type": "function", "inputs": [ { - "name": "l1Token", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "l2Token", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "from", + "name": "_target", "internalType": "address", - "type": "address", - "indexed": true + "type": "address" }, { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": false + "name": "_data", + "internalType": "bytes", + "type": "bytes" }, { - "name": "amount", + "name": "_value", "internalType": "uint256", - "type": "uint256", - "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false + "type": "uint256" } ], - "name": "ERC20DepositInitiated" - }, - { - "type": "event", - "anonymous": false, - "inputs": [ - { - "name": "l1Token", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "l2Token", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": false - }, + "name": "CALL", + "outputs": [ { - "name": "amount", - "internalType": "uint256", - "type": "uint256", - "indexed": false + "name": "", + "internalType": "bool", + "type": "bool" }, { - "name": "extraData", + "name": "", "internalType": "bytes", - "type": "bytes", - "indexed": false + "type": "bytes" } - ], - "name": "ERC20WithdrawalFinalized" + ] }, { - "type": "event", - "anonymous": false, + "stateMutability": "payable", + "type": "function", "inputs": [ { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", + "name": "_target", "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "amount", - "internalType": "uint256", - "type": "uint256", - "indexed": false + "type": "address" }, { - "name": "extraData", + "name": "_data", "internalType": "bytes", - "type": "bytes", - "indexed": false + "type": "bytes" } ], - "name": "ETHBridgeFinalized" - }, - { - "type": "event", - "anonymous": false, - "inputs": [ - { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": true - }, + "name": "DELEGATECALL", + "outputs": [ { - "name": "amount", - "internalType": "uint256", - "type": "uint256", - "indexed": false + "name": "", + "internalType": "bool", + "type": "bool" }, { - "name": "extraData", + "name": "", "internalType": "bytes", - "type": "bytes", - "indexed": false + "type": "bytes" } - ], - "name": "ETHBridgeInitiated" + ] }, { - "type": "event", - "anonymous": false, + "stateMutability": "nonpayable", + "type": "function", "inputs": [ { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "amount", - "internalType": "uint256", - "type": "uint256", - "indexed": false + "name": "_name", + "internalType": "string", + "type": "string" }, { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false + "name": "_config", + "internalType": "struct Drippie.DripConfig", + "type": "tuple", + "components": [ + { + "name": "reentrant", + "internalType": "bool", + "type": "bool" + }, + { + "name": "interval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ] } ], - "name": "ETHDepositInitiated" + "name": "create", + "outputs": [] }, { - "type": "event", - "anonymous": false, + "stateMutability": "nonpayable", + "type": "function", "inputs": [ { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "amount", - "internalType": "uint256", - "type": "uint256", - "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false + "name": "_name", + "internalType": "string", + "type": "string" } ], - "name": "ETHWithdrawalFinalized" + "name": "drip", + "outputs": [] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [ { - "name": "_localToken", - "internalType": "address", - "type": "address" + "name": "", + "internalType": "string", + "type": "string" + } + ], + "name": "drips", + "outputs": [ + { + "name": "status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8" }, { - "name": "_remoteToken", - "internalType": "address", - "type": "address" + "name": "config", + "internalType": "struct Drippie.DripConfig", + "type": "tuple", + "components": [ + { + "name": "reentrant", + "internalType": "bool", + "type": "bool" + }, + { + "name": "interval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ] }, { - "name": "_amount", + "name": "last", "internalType": "uint256", "type": "uint256" }, { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "count", + "internalType": "uint256", + "type": "uint256" } - ], - "name": "bridgeERC20", - "outputs": [] + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [ { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, + "name": "_name", + "internalType": "string", + "type": "string" + } + ], + "name": "executable", + "outputs": [ { - "name": "_remoteToken", - "internalType": "address", - "type": "address" - }, + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ { - "name": "_to", + "name": "", "internalType": "address", "type": "address" - }, - { - "name": "_amount", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" } - ], - "name": "bridgeERC20To", - "outputs": [] + ] }, { - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "newOwner", + "internalType": "address", + "type": "address" } ], - "name": "bridgeETH", + "name": "setOwner", "outputs": [] }, { - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_to", - "internalType": "address", - "type": "address" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" + "name": "_name", + "internalType": "string", + "type": "string" }, { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "_status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8" } ], - "name": "bridgeETHTo", + "name": "status", "outputs": [] }, { @@ -1228,12 +1161,12 @@ "type": "function", "inputs": [ { - "name": "_l1Token", - "internalType": "address", + "name": "_asset", + "internalType": "contract ERC20", "type": "address" }, { - "name": "_l2Token", + "name": "_to", "internalType": "address", "type": "address" }, @@ -1241,19 +1174,9 @@ "name": "_amount", "internalType": "uint256", "type": "uint256" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" } ], - "name": "depositERC20", + "name": "withdrawERC20", "outputs": [] }, { @@ -1261,14 +1184,27 @@ "type": "function", "inputs": [ { - "name": "_l1Token", - "internalType": "address", + "name": "_asset", + "internalType": "contract ERC20", "type": "address" }, { - "name": "_l2Token", + "name": "_to", "internalType": "address", "type": "address" + } + ], + "name": "withdrawERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_asset", + "internalType": "contract ERC721", + "type": "address" }, { "name": "_to", @@ -1276,465 +1212,448 @@ "type": "address" }, { - "name": "_amount", + "name": "_id", "internalType": "uint256", "type": "uint256" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" } ], - "name": "depositERC20To", + "name": "withdrawERC721", "outputs": [] }, { - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" + "name": "_to", + "internalType": "address payable", + "type": "address" }, { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "_amount", + "internalType": "uint256", + "type": "uint256" } ], - "name": "depositETH", + "name": "withdrawETH", "outputs": [] }, { - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { "name": "_to", - "internalType": "address", + "internalType": "address payable", "type": "address" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" } ], - "name": "depositETHTo", + "name": "withdrawETH", "outputs": [] }, { - "stateMutability": "view", - "type": "function", + "stateMutability": "payable", + "type": "receive" + } + ], + "Drippie_goerli": [ + { + "stateMutability": "nonpayable", + "type": "constructor", "inputs": [ { - "name": "", - "internalType": "address", - "type": "address" - }, - { - "name": "", + "name": "_owner", "internalType": "address", "type": "address" } - ], - "name": "deposits", - "outputs": [ - { - "name": "", - "internalType": "uint256", - "type": "uint256" - } ] }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_remoteToken", - "internalType": "address", - "type": "address" + "name": "nameref", + "internalType": "string", + "type": "string", + "indexed": true }, { - "name": "_from", - "internalType": "address", - "type": "address" + "name": "name", + "internalType": "string", + "type": "string", + "indexed": false }, { - "name": "_to", - "internalType": "address", - "type": "address" - }, - { - "name": "_amount", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "config", + "internalType": "struct Drippie.DripConfig", + "type": "tuple", + "components": [ + { + "name": "reentrant", + "internalType": "bool", + "type": "bool" + }, + { + "name": "interval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ], + "indexed": false } ], - "name": "finalizeBridgeERC20", - "outputs": [] + "name": "DripCreated" }, { - "stateMutability": "payable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_from", - "internalType": "address", - "type": "address" + "name": "nameref", + "internalType": "string", + "type": "string", + "indexed": true }, { - "name": "_to", - "internalType": "address", - "type": "address" + "name": "name", + "internalType": "string", + "type": "string", + "indexed": false }, { - "name": "_amount", - "internalType": "uint256", - "type": "uint256" + "name": "executor", + "internalType": "address", + "type": "address", + "indexed": false }, { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "timestamp", + "internalType": "uint256", + "type": "uint256", + "indexed": false } ], - "name": "finalizeBridgeETH", - "outputs": [] + "name": "DripExecuted" }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_l1Token", - "internalType": "address", - "type": "address" - }, - { - "name": "_l2Token", - "internalType": "address", - "type": "address" - }, - { - "name": "_from", - "internalType": "address", - "type": "address" - }, - { - "name": "_to", - "internalType": "address", - "type": "address" + "name": "nameref", + "internalType": "string", + "type": "string", + "indexed": true }, { - "name": "_amount", - "internalType": "uint256", - "type": "uint256" + "name": "name", + "internalType": "string", + "type": "string", + "indexed": false }, { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "name": "status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8", + "indexed": false } ], - "name": "finalizeERC20Withdrawal", - "outputs": [] + "name": "DripStatusUpdated" }, { - "stateMutability": "payable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_from", + "name": "user", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "_to", + "name": "newOwner", "internalType": "address", - "type": "address" - }, - { - "name": "_amount", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" + "type": "address", + "indexed": true } ], - "name": "finalizeETHWithdrawal", - "outputs": [] + "name": "OwnerUpdated" }, { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "l2TokenBridge", - "outputs": [ + "type": "event", + "anonymous": false, + "inputs": [ { - "name": "", + "name": "from", "internalType": "address", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "messenger", - "outputs": [ - { - "name": "", - "internalType": "contract CrossDomainMessenger", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "version", - "outputs": [ + "type": "address", + "indexed": true + }, { - "name": "", - "internalType": "string", - "type": "string" + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false } - ] + ], + "name": "ReceivedETH" }, { - "stateMutability": "payable", - "type": "receive" - } - ], - "L2OutputOracle": [ - { - "stateMutability": "nonpayable", - "type": "constructor", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_submissionInterval", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_l2BlockTime", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_startingBlockNumber", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_startingTimestamp", - "internalType": "uint256", - "type": "uint256" + "name": "withdrawer", + "internalType": "address", + "type": "address", + "indexed": true }, { - "name": "_proposer", + "name": "recipient", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "_challenger", + "name": "asset", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true }, { - "name": "_finalizationPeriodSeconds", + "name": "amount", "internalType": "uint256", - "type": "uint256" - } - ] - }, - { - "type": "event", - "anonymous": false, - "inputs": [ - { - "name": "version", - "internalType": "uint8", - "type": "uint8", + "type": "uint256", "indexed": false } ], - "name": "Initialized" + "name": "WithdrewERC20" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "outputRoot", - "internalType": "bytes32", - "type": "bytes32", + "name": "withdrawer", + "internalType": "address", + "type": "address", "indexed": true }, { - "name": "l2OutputIndex", - "internalType": "uint256", - "type": "uint256", + "name": "recipient", + "internalType": "address", + "type": "address", "indexed": true }, { - "name": "l2BlockNumber", - "internalType": "uint256", - "type": "uint256", + "name": "asset", + "internalType": "address", + "type": "address", "indexed": true }, { - "name": "l1Timestamp", + "name": "id", "internalType": "uint256", "type": "uint256", "indexed": false } ], - "name": "OutputProposed" + "name": "WithdrewERC721" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "prevNextOutputIndex", - "internalType": "uint256", - "type": "uint256", + "name": "withdrawer", + "internalType": "address", + "type": "address", "indexed": true }, { - "name": "newNextOutputIndex", + "name": "recipient", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", "internalType": "uint256", "type": "uint256", - "indexed": true + "indexed": false } ], - "name": "OutputsDeleted" + "name": "WithdrewETH" }, { - "stateMutability": "view", + "stateMutability": "payable", "type": "function", - "inputs": [], - "name": "CHALLENGER", - "outputs": [ + "inputs": [ { - "name": "", + "name": "_target", "internalType": "address", "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "FINALIZATION_PERIOD_SECONDS", - "outputs": [ + }, { - "name": "", + "name": "_data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_value", "internalType": "uint256", "type": "uint256" } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "L2_BLOCK_TIME", + ], + "name": "CALL", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "bool", + "type": "bool" + }, + { + "name": "", + "internalType": "bytes", + "type": "bytes" } ] }, { - "stateMutability": "view", + "stateMutability": "payable", "type": "function", - "inputs": [], - "name": "PROPOSER", - "outputs": [ + "inputs": [ { - "name": "", + "name": "_target", "internalType": "address", "type": "address" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "SUBMISSION_INTERVAL", + ], + "name": "DELEGATECALL", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "bool", + "type": "bool" + }, + { + "name": "", + "internalType": "bytes", + "type": "bytes" } ] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_l2BlockNumber", - "internalType": "uint256", - "type": "uint256" - } - ], - "name": "computeL2Timestamp", - "outputs": [ + "name": "_name", + "internalType": "string", + "type": "string" + }, { - "name": "", - "internalType": "uint256", - "type": "uint256" + "name": "_config", + "internalType": "struct Drippie.DripConfig", + "type": "tuple", + "components": [ + { + "name": "reentrant", + "internalType": "bool", + "type": "bool" + }, + { + "name": "interval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ] } - ] + ], + "name": "create", + "outputs": [] }, { "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_l2OutputIndex", - "internalType": "uint256", - "type": "uint256" + "name": "_name", + "internalType": "string", + "type": "string" } ], - "name": "deleteL2Outputs", + "name": "drip", "outputs": [] }, { @@ -1742,34 +1661,76 @@ "type": "function", "inputs": [ { - "name": "_l2OutputIndex", - "internalType": "uint256", - "type": "uint256" + "name": "", + "internalType": "string", + "type": "string" } ], - "name": "getL2Output", + "name": "drips", "outputs": [ { - "name": "", - "internalType": "struct Types.OutputProposal", + "name": "status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8" + }, + { + "name": "config", + "internalType": "struct Drippie.DripConfig", "type": "tuple", "components": [ { - "name": "outputRoot", - "internalType": "bytes32", - "type": "bytes32" + "name": "reentrant", + "internalType": "bool", + "type": "bool" }, { - "name": "timestamp", - "internalType": "uint128", - "type": "uint128" + "name": "interval", + "internalType": "uint256", + "type": "uint256" }, { - "name": "l2BlockNumber", - "internalType": "uint128", - "type": "uint128" + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] } ] + }, + { + "name": "last", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "count", + "internalType": "uint256", + "type": "uint256" } ] }, @@ -1778,53 +1739,30 @@ "type": "function", "inputs": [ { - "name": "_l2BlockNumber", - "internalType": "uint256", - "type": "uint256" + "name": "_name", + "internalType": "string", + "type": "string" } ], - "name": "getL2OutputAfter", + "name": "executable", "outputs": [ { "name": "", - "internalType": "struct Types.OutputProposal", - "type": "tuple", - "components": [ - { - "name": "outputRoot", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "timestamp", - "internalType": "uint128", - "type": "uint128" - }, - { - "name": "l2BlockNumber", - "internalType": "uint128", - "type": "uint128" - } - ] + "internalType": "bool", + "type": "bool" } ] }, { "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_l2BlockNumber", - "internalType": "uint256", - "type": "uint256" - } - ], - "name": "getL2OutputIndexAfter", + "inputs": [], + "name": "owner", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "address", + "type": "address" } ] }, @@ -1833,146 +1771,139 @@ "type": "function", "inputs": [ { - "name": "_startingBlockNumber", - "internalType": "uint256", - "type": "uint256" + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_name", + "internalType": "string", + "type": "string" }, { - "name": "_startingTimestamp", - "internalType": "uint256", - "type": "uint256" + "name": "_status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8" } ], - "name": "initialize", + "name": "status", "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "latestBlockNumber", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "uint256", - "type": "uint256" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "latestOutputIndex", - "outputs": [ + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" + }, { - "name": "", - "internalType": "uint256", - "type": "uint256" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "nextBlockNumber", - "outputs": [ + "name": "_to", + "internalType": "address", + "type": "address" + }, { - "name": "", + "name": "_amount", "internalType": "uint256", "type": "uint256" } - ] + ], + "name": "withdrawERC20", + "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "nextOutputIndex", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "uint256", - "type": "uint256" + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" } - ] + ], + "name": "withdrawERC20", + "outputs": [] }, { - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_outputRoot", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "_l2BlockNumber", - "internalType": "uint256", - "type": "uint256" + "name": "_asset", + "internalType": "contract ERC721", + "type": "address" }, { - "name": "_l1BlockHash", - "internalType": "bytes32", - "type": "bytes32" + "name": "_to", + "internalType": "address", + "type": "address" }, { - "name": "_l1BlockNumber", + "name": "_id", "internalType": "uint256", "type": "uint256" } ], - "name": "proposeL2Output", + "name": "withdrawERC721", "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "startingBlockNumber", - "outputs": [ + "inputs": [ { - "name": "", + "name": "_to", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_amount", "internalType": "uint256", "type": "uint256" } - ] + ], + "name": "withdrawETH", + "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "startingTimestamp", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "uint256", - "type": "uint256" + "name": "_to", + "internalType": "address payable", + "type": "address" } - ] + ], + "name": "withdrawETH", + "outputs": [] }, { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "internalType": "string", - "type": "string" - } - ] + "stateMutability": "payable", + "type": "receive" } ], - "OptimismMintableERC20Factory": [ + "Drippie_optimism-goerli": [ { "stateMutability": "nonpayable", "type": "constructor", "inputs": [ { - "name": "_bridge", + "name": "_owner", "internalType": "address", "type": "address" } @@ -1983,307 +1914,282 @@ "anonymous": false, "inputs": [ { - "name": "localToken", - "internalType": "address", - "type": "address", + "name": "nameref", + "internalType": "string", + "type": "string", "indexed": true }, { - "name": "remoteToken", - "internalType": "address", - "type": "address", - "indexed": true + "name": "name", + "internalType": "string", + "type": "string", + "indexed": false }, { - "name": "deployer", - "internalType": "address", - "type": "address", + "name": "config", + "internalType": "struct Drippie.DripConfig", + "type": "tuple", + "components": [ + { + "name": "interval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ], "indexed": false } ], - "name": "OptimismMintableERC20Created" + "name": "DripCreated" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "remoteToken", - "internalType": "address", - "type": "address", + "name": "nameref", + "internalType": "string", + "type": "string", "indexed": true }, { - "name": "localToken", + "name": "name", + "internalType": "string", + "type": "string", + "indexed": false + }, + { + "name": "executor", "internalType": "address", "type": "address", - "indexed": true - } - ], - "name": "StandardL2TokenCreated" - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "BRIDGE", - "outputs": [ + "indexed": false + }, { - "name": "", - "internalType": "address", - "type": "address" + "name": "timestamp", + "internalType": "uint256", + "type": "uint256", + "indexed": false } - ] + ], + "name": "DripExecuted" }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_remoteToken", - "internalType": "address", - "type": "address" + "name": "nameref", + "internalType": "string", + "type": "string", + "indexed": true }, { - "name": "_name", + "name": "name", "internalType": "string", - "type": "string" + "type": "string", + "indexed": false }, { - "name": "_symbol", - "internalType": "string", - "type": "string" + "name": "status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8", + "indexed": false } ], - "name": "createOptimismMintableERC20", - "outputs": [ - { - "name": "", - "internalType": "address", - "type": "address" - } - ] + "name": "DripStatusUpdated" }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_remoteToken", + "name": "user", "internalType": "address", - "type": "address" - }, - { - "name": "_name", - "internalType": "string", - "type": "string" + "type": "address", + "indexed": true }, { - "name": "_symbol", - "internalType": "string", - "type": "string" - } - ], - "name": "createStandardL2Token", - "outputs": [ - { - "name": "", + "name": "newOwner", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true } - ] + ], + "name": "OwnerUpdated" }, { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "internalType": "string", - "type": "string" - } - ] - } - ], - "OptimismPortal": [ - { - "stateMutability": "nonpayable", - "type": "constructor", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_l2Oracle", - "internalType": "contract L2OutputOracle", - "type": "address" - }, - { - "name": "_guardian", + "name": "from", "internalType": "address", - "type": "address" - }, - { - "name": "_paused", - "internalType": "bool", - "type": "bool" + "type": "address", + "indexed": true }, { - "name": "_config", - "internalType": "contract SystemConfig", - "type": "address" - } - ] - }, - { - "type": "event", - "anonymous": false, - "inputs": [ - { - "name": "version", - "internalType": "uint8", - "type": "uint8", + "name": "amount", + "internalType": "uint256", + "type": "uint256", "indexed": false } ], - "name": "Initialized" + "name": "ReceivedETH" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "account", + "name": "withdrawer", "internalType": "address", "type": "address", - "indexed": false - } - ], - "name": "Paused" - }, - { - "type": "event", - "anonymous": false, - "inputs": [ + "indexed": true + }, { - "name": "from", + "name": "recipient", "internalType": "address", "type": "address", "indexed": true }, { - "name": "to", + "name": "asset", "internalType": "address", "type": "address", "indexed": true }, { - "name": "version", + "name": "amount", "internalType": "uint256", "type": "uint256", - "indexed": true - }, - { - "name": "opaqueData", - "internalType": "bytes", - "type": "bytes", "indexed": false } ], - "name": "TransactionDeposited" + "name": "WithdrewERC20" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "account", + "name": "withdrawer", "internalType": "address", "type": "address", - "indexed": false - } - ], - "name": "Unpaused" - }, - { - "type": "event", - "anonymous": false, - "inputs": [ + "indexed": true + }, { - "name": "withdrawalHash", - "internalType": "bytes32", - "type": "bytes32", + "name": "recipient", + "internalType": "address", + "type": "address", "indexed": true }, { - "name": "success", - "internalType": "bool", - "type": "bool", + "name": "asset", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "id", + "internalType": "uint256", + "type": "uint256", "indexed": false } ], - "name": "WithdrawalFinalized" + "name": "WithdrewERC721" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "withdrawalHash", - "internalType": "bytes32", - "type": "bytes32", - "indexed": true - }, - { - "name": "from", + "name": "withdrawer", "internalType": "address", "type": "address", "indexed": true }, { - "name": "to", + "name": "recipient", "internalType": "address", "type": "address", "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false } ], - "name": "WithdrawalProven" + "name": "WithdrewETH" }, { - "stateMutability": "view", + "stateMutability": "payable", "type": "function", - "inputs": [], - "name": "GUARDIAN", - "outputs": [ + "inputs": [ { - "name": "", + "name": "_target", "internalType": "address", "type": "address" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_gas", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "L2_ORACLE", + ], + "name": "CALL", "outputs": [ { "name": "", - "internalType": "contract L2OutputOracle", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "SYSTEM_CONFIG", - "outputs": [ + "internalType": "bool", + "type": "bool" + }, { "name": "", - "internalType": "contract SystemConfig", - "type": "address" + "internalType": "bytes", + "type": "bytes" } ] }, @@ -2292,129 +2198,189 @@ "type": "function", "inputs": [ { - "name": "_to", + "name": "_target", "internalType": "address", "type": "address" }, { - "name": "_value", - "internalType": "uint256", - "type": "uint256" + "name": "_data", + "internalType": "bytes", + "type": "bytes" }, { - "name": "_gasLimit", - "internalType": "uint64", - "type": "uint64" - }, + "name": "_gas", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "DELEGATECALL", + "outputs": [ { - "name": "_isCreation", + "name": "", "internalType": "bool", "type": "bool" }, { - "name": "_data", + "name": "", "internalType": "bytes", "type": "bytes" } - ], - "name": "depositTransaction", - "outputs": [] - }, - { - "stateMutability": "payable", - "type": "function", - "inputs": [], - "name": "donateETH", - "outputs": [] + ] }, { "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_tx", - "internalType": "struct Types.WithdrawalTransaction", + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_config", + "internalType": "struct Drippie.DripConfig", "type": "tuple", "components": [ { - "name": "nonce", + "name": "interval", "internalType": "uint256", "type": "uint256" }, { - "name": "sender", - "internalType": "address", - "type": "address" - }, - { - "name": "target", - "internalType": "address", + "name": "dripcheck", + "internalType": "contract IDripCheck", "type": "address" }, { - "name": "value", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "gasLimit", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "data", + "name": "checkparams", "internalType": "bytes", "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] } ] } ], - "name": "finalizeWithdrawalTransaction", + "name": "create", "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "", - "internalType": "bytes32", - "type": "bytes32" + "name": "_name", + "internalType": "string", + "type": "string" } ], - "name": "finalizedWithdrawals", - "outputs": [ - { - "name": "", - "internalType": "bool", - "type": "bool" - } - ] + "name": "drip", + "outputs": [] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [ { - "name": "_paused", - "internalType": "bool", - "type": "bool" + "name": "", + "internalType": "string", + "type": "string" } ], - "name": "initialize", - "outputs": [] + "name": "drips", + "outputs": [ + { + "name": "status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8" + }, + { + "name": "config", + "internalType": "struct Drippie.DripConfig", + "type": "tuple", + "components": [ + { + "name": "interval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "dripcheck", + "internalType": "contract IDripCheck", + "type": "address" + }, + { + "name": "checkparams", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "actions", + "internalType": "struct Drippie.DripAction[]", + "type": "tuple[]", + "components": [ + { + "name": "target", + "internalType": "address payable", + "type": "address" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ] + }, + { + "name": "last", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "count", + "internalType": "uint256", + "type": "uint256" + } + ] }, { "stateMutability": "view", "type": "function", "inputs": [ { - "name": "_l2OutputIndex", - "internalType": "uint256", - "type": "uint256" + "name": "_name", + "internalType": "string", + "type": "string" } ], - "name": "isOutputFinalized", + "name": "executable", "outputs": [ { "name": "", @@ -2427,7 +2393,7 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "l2Sender", + "name": "owner", "outputs": [ { "name": "", @@ -2437,352 +2403,318 @@ ] }, { - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_byteCount", - "internalType": "uint64", - "type": "uint64" + "name": "newOwner", + "internalType": "address", + "type": "address" } ], - "name": "minimumGasLimit", - "outputs": [ + "name": "setOwner", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ { - "name": "", - "internalType": "uint64", - "type": "uint64" + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_status", + "internalType": "enum Drippie.DripStatus", + "type": "uint8" } - ] + ], + "name": "status", + "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "params", - "outputs": [ + "inputs": [ { - "name": "prevBaseFee", - "internalType": "uint128", - "type": "uint128" + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" }, { - "name": "prevBoughtGas", - "internalType": "uint64", - "type": "uint64" + "name": "_to", + "internalType": "address", + "type": "address" }, { - "name": "prevBlockNum", - "internalType": "uint64", - "type": "uint64" + "name": "_amount", + "internalType": "uint256", + "type": "uint256" } - ] + ], + "name": "withdrawERC20", + "outputs": [] }, { "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "pause", + "inputs": [ + { + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + } + ], + "name": "withdrawERC20", "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "paused", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "bool", - "type": "bool" + "name": "_asset", + "internalType": "contract ERC721", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_id", + "internalType": "uint256", + "type": "uint256" } - ] + ], + "name": "withdrawERC721", + "outputs": [] }, { "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_tx", - "internalType": "struct Types.WithdrawalTransaction", - "type": "tuple", - "components": [ - { - "name": "nonce", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "sender", - "internalType": "address", - "type": "address" - }, - { - "name": "target", - "internalType": "address", - "type": "address" - }, - { - "name": "value", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "gasLimit", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "data", - "internalType": "bytes", - "type": "bytes" - } - ] + "name": "_to", + "internalType": "address payable", + "type": "address" }, { - "name": "_l2OutputIndex", + "name": "_amount", "internalType": "uint256", "type": "uint256" - }, - { - "name": "_outputRootProof", - "internalType": "struct Types.OutputRootProof", - "type": "tuple", - "components": [ - { - "name": "version", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "stateRoot", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "messagePasserStorageRoot", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "latestBlockhash", - "internalType": "bytes32", - "type": "bytes32" - } - ] - }, - { - "name": "_withdrawalProof", - "internalType": "bytes[]", - "type": "bytes[]" } ], - "name": "proveWithdrawalTransaction", + "name": "withdrawETH", "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "", - "internalType": "bytes32", - "type": "bytes32" + "name": "_to", + "internalType": "address payable", + "type": "address" } ], - "name": "provenWithdrawals", - "outputs": [ - { - "name": "outputRoot", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "timestamp", - "internalType": "uint128", - "type": "uint128" - }, + "name": "withdrawETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "L1CrossDomainMessenger": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ { - "name": "l2OutputIndex", - "internalType": "uint128", - "type": "uint128" + "name": "_portal", + "internalType": "contract OptimismPortal", + "type": "address" } ] }, { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "unpause", - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "version", - "outputs": [ + "type": "event", + "anonymous": false, + "inputs": [ { - "name": "", - "internalType": "string", - "type": "string" + "name": "msgHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true } - ] + ], + "name": "FailedRelayedMessage" }, { - "stateMutability": "payable", - "type": "receive" - } - ], - "PortalSender": [ - { - "stateMutability": "nonpayable", - "type": "constructor", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_portal", - "internalType": "contract OptimismPortal", - "type": "address" + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false } - ] + ], + "name": "Initialized" }, { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "PORTAL", - "outputs": [ + "type": "event", + "anonymous": false, + "inputs": [ { - "name": "", - "internalType": "contract OptimismPortal", - "type": "address" + "name": "msgHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true } - ] + ], + "name": "RelayedMessage" }, { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "donate", - "outputs": [] - } - ], - "ProxyAdmin": [ - { - "stateMutability": "nonpayable", - "type": "constructor", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_owner", + "name": "target", "internalType": "address", - "type": "address" + "type": "address", + "indexed": true + }, + { + "name": "sender", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "message", + "internalType": "bytes", + "type": "bytes", + "indexed": false + }, + { + "name": "messageNonce", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256", + "indexed": false } - ] + ], + "name": "SentMessage" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "previousOwner", + "name": "sender", "internalType": "address", "type": "address", "indexed": true }, { - "name": "newOwner", - "internalType": "address", - "type": "address", - "indexed": true + "name": "value", + "internalType": "uint256", + "type": "uint256", + "indexed": false } ], - "name": "OwnershipTransferred" + "name": "SentMessageExtension1" }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "addressManager", + "name": "MESSAGE_VERSION", "outputs": [ { "name": "", - "internalType": "contract AddressManager", - "type": "address" + "internalType": "uint16", + "type": "uint16" } ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_proxy", - "internalType": "address payable", - "type": "address" - }, + "inputs": [], + "name": "MIN_GAS_CALLDATA_OVERHEAD", + "outputs": [ { - "name": "_newAdmin", - "internalType": "address", - "type": "address" + "name": "", + "internalType": "uint64", + "type": "uint64" } - ], - "name": "changeProxyAdmin", - "outputs": [] + ] }, { "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_proxy", - "internalType": "address payable", - "type": "address" - } - ], - "name": "getProxyAdmin", + "inputs": [], + "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "uint64", + "type": "uint64" } ] }, { "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_proxy", - "internalType": "address", - "type": "address" - } - ], - "name": "getProxyImplementation", + "inputs": [], + "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "uint64", + "type": "uint64" } ] }, { "stateMutability": "view", "type": "function", - "inputs": [ + "inputs": [], + "name": "OTHER_MESSENGER", + "outputs": [ { "name": "", "internalType": "address", "type": "address" } - ], - "name": "implementationName", + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PORTAL", "outputs": [ { "name": "", - "internalType": "string", - "type": "string" + "internalType": "contract OptimismPortal", + "type": "address" } ] }, @@ -2790,12 +2722,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "isUpgrading", + "name": "RELAY_CALL_OVERHEAD", "outputs": [ { "name": "", - "internalType": "bool", - "type": "bool" + "internalType": "uint64", + "type": "uint64" } ] }, @@ -2803,247 +2735,225 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "owner", + "name": "RELAY_CONSTANT_OVERHEAD", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "uint64", + "type": "uint64" } ] }, { "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "", - "internalType": "address", - "type": "address" - } - ], - "name": "proxyType", + "inputs": [], + "name": "RELAY_GAS_CHECK_BUFFER", "outputs": [ { "name": "", - "internalType": "enum ProxyAdmin.ProxyType", - "type": "uint8" + "internalType": "uint64", + "type": "uint64" } ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [], - "name": "renounceOwnership", - "outputs": [] + "name": "RELAY_RESERVED_GAS", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "inputs": [ { - "name": "_name", - "internalType": "string", - "type": "string" + "name": "_message", + "internalType": "bytes", + "type": "bytes" }, { - "name": "_address", - "internalType": "address", - "type": "address" + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" } ], - "name": "setAddress", - "outputs": [] + "name": "baseGas", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [ { - "name": "_address", - "internalType": "contract AddressManager", - "type": "address" + "name": "", + "internalType": "bytes32", + "type": "bytes32" } ], - "name": "setAddressManager", - "outputs": [] + "name": "failedMessages", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] }, { "stateMutability": "nonpayable", "type": "function", + "inputs": [], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messageNonce", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", "inputs": [ { - "name": "_address", + "name": "_nonce", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_sender", "internalType": "address", "type": "address" }, { - "name": "_name", - "internalType": "string", - "type": "string" + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_message", + "internalType": "bytes", + "type": "bytes" } ], - "name": "setImplementationName", + "name": "relayMessage", "outputs": [] }, { - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function", "inputs": [ { - "name": "_address", + "name": "_target", "internalType": "address", "type": "address" }, { - "name": "_type", - "internalType": "enum ProxyAdmin.ProxyType", - "type": "uint8" + "name": "_message", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" } ], - "name": "setProxyType", + "name": "sendMessage", "outputs": [] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [ { - "name": "_upgrading", - "internalType": "bool", - "type": "bool" + "name": "", + "internalType": "bytes32", + "type": "bytes32" } ], - "name": "setUpgrading", - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [ + "name": "successfulMessages", + "outputs": [ { - "name": "newOwner", - "internalType": "address", - "type": "address" + "name": "", + "internalType": "bool", + "type": "bool" } - ], - "name": "transferOwnership", - "outputs": [] + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_proxy", - "internalType": "address payable", - "type": "address" - }, + "inputs": [], + "name": "version", + "outputs": [ { - "name": "_implementation", - "internalType": "address", - "type": "address" + "name": "", + "internalType": "string", + "type": "string" } - ], - "name": "upgrade", - "outputs": [] + ] }, { - "stateMutability": "payable", + "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_proxy", - "internalType": "address payable", - "type": "address" - }, + "inputs": [], + "name": "xDomainMessageSender", + "outputs": [ { - "name": "_implementation", + "name": "", "internalType": "address", "type": "address" - }, - { - "name": "_data", - "internalType": "bytes", - "type": "bytes" } - ], - "name": "upgradeAndCall", - "outputs": [] + ] } ], - "SystemConfig": [ + "L1ERC721Bridge": [ { "stateMutability": "nonpayable", "type": "constructor", "inputs": [ { - "name": "_owner", + "name": "_messenger", "internalType": "address", "type": "address" }, { - "name": "_overhead", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_scalar", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_batcherHash", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "_gasLimit", - "internalType": "uint64", - "type": "uint64" - }, - { - "name": "_unsafeBlockSigner", + "name": "_otherBridge", "internalType": "address", "type": "address" - }, - { - "name": "_config", - "internalType": "struct ResourceMetering.ResourceConfig", - "type": "tuple", - "components": [ - { - "name": "maxResourceLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "elasticityMultiplier", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "baseFeeMaxChangeDenominator", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "minimumBaseFee", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "systemTxMaxGas", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "maximumBaseFee", - "internalType": "uint128", - "type": "uint128" - } - ] } ] }, @@ -3052,94 +2962,184 @@ "anonymous": false, "inputs": [ { - "name": "version", - "internalType": "uint256", - "type": "uint256", + "name": "localToken", + "internalType": "address", + "type": "address", "indexed": true }, { - "name": "updateType", - "internalType": "enum SystemConfig.UpdateType", - "type": "uint8", + "name": "remoteToken", + "internalType": "address", + "type": "address", "indexed": true }, { - "name": "data", + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", "internalType": "bytes", "type": "bytes", "indexed": false } ], - "name": "ConfigUpdate" + "name": "ERC721BridgeFinalized" }, { "type": "event", "anonymous": false, "inputs": [ { - "name": "version", - "internalType": "uint8", - "type": "uint8", - "indexed": false - } - ], - "name": "Initialized" - }, - { - "type": "event", - "anonymous": false, - "inputs": [ + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, { - "name": "previousOwner", + "name": "remoteToken", "internalType": "address", "type": "address", "indexed": true }, { - "name": "newOwner", + "name": "from", "internalType": "address", "type": "address", "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false } ], - "name": "OwnershipTransferred" + "name": "ERC721BridgeInitiated" }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "UNSAFE_BLOCK_SIGNER_SLOT", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "bytes32", - "type": "bytes32" + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" } - ] + ], + "name": "bridgeERC721", + "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "batcherHash", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "bytes32", - "type": "bytes32" + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" } - ] + ], + "name": "bridgeERC721To", + "outputs": [] }, { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "gasLimit", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "deposits", "outputs": [ { "name": "", - "internalType": "uint64", - "type": "uint64" + "internalType": "bool", + "type": "bool" } ] }, @@ -3148,86 +3148,49 @@ "type": "function", "inputs": [ { - "name": "_owner", + "name": "_localToken", "internalType": "address", "type": "address" }, { - "name": "_overhead", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_scalar", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_batcherHash", - "internalType": "bytes32", - "type": "bytes32" + "name": "_remoteToken", + "internalType": "address", + "type": "address" }, { - "name": "_gasLimit", - "internalType": "uint64", - "type": "uint64" + "name": "_from", + "internalType": "address", + "type": "address" }, { - "name": "_unsafeBlockSigner", + "name": "_to", "internalType": "address", "type": "address" }, { - "name": "_config", - "internalType": "struct ResourceMetering.ResourceConfig", - "type": "tuple", - "components": [ - { - "name": "maxResourceLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "elasticityMultiplier", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "baseFeeMaxChangeDenominator", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "minimumBaseFee", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "systemTxMaxGas", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "maximumBaseFee", - "internalType": "uint128", - "type": "uint128" - } - ] + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" } ], - "name": "initialize", + "name": "finalizeBridgeERC721", "outputs": [] }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "minimumGasLimit", + "name": "messenger", "outputs": [ { "name": "", - "internalType": "uint64", - "type": "uint64" + "internalType": "contract CrossDomainMessenger", + "type": "address" } ] }, @@ -3235,12 +3198,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "overhead", + "name": "otherBridge", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "address", + "type": "address" } ] }, @@ -3248,122 +3211,4628 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "owner", + "name": "version", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "string", + "type": "string" } ] - }, + } + ], + "L1StandardBridge": [ { "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "renounceOwnership", - "outputs": [] + "type": "constructor", + "inputs": [ + { + "name": "_messenger", + "internalType": "address payable", + "type": "address" + } + ] }, { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "resourceConfig", - "outputs": [ + "type": "event", + "anonymous": false, + "inputs": [ { - "name": "", - "internalType": "struct ResourceMetering.ResourceConfig", - "type": "tuple", - "components": [ - { - "name": "maxResourceLimit", - "internalType": "uint32", + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20BridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20BridgeInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "l1Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "l2Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20DepositInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "l1Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "l2Token", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC20WithdrawalFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHBridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHBridgeInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHDepositInitiated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ETHWithdrawalFinalized" + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeERC20To", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "bridgeETHTo", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l1Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l1Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositERC20To", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositETH", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositETHTo", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "deposits", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeERC20", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeBridgeETH", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l1Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_l2Token", + "internalType": "address", + "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeERC20Withdrawal", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "finalizeETHWithdrawal", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2TokenBridge", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "messenger", + "outputs": [ + { + "name": "", + "internalType": "contract CrossDomainMessenger", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "L2OutputOracle": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_submissionInterval", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_l2BlockTime", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_startingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_startingTimestamp", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_proposer", + "internalType": "address", + "type": "address" + }, + { + "name": "_challenger", + "internalType": "address", + "type": "address" + }, + { + "name": "_finalizationPeriodSeconds", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + }, + { + "name": "l2OutputIndex", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "l2BlockNumber", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "l1Timestamp", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "OutputProposed" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "prevNextOutputIndex", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "newNextOutputIndex", + "internalType": "uint256", + "type": "uint256", + "indexed": true + } + ], + "name": "OutputsDeleted" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "CHALLENGER", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "FINALIZATION_PERIOD_SECONDS", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "L2_BLOCK_TIME", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PROPOSER", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "SUBMISSION_INTERVAL", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "computeL2Timestamp", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "deleteL2Outputs", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "getL2Output", + "outputs": [ + { + "name": "", + "internalType": "struct Types.OutputProposal", + "type": "tuple", + "components": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "timestamp", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "l2BlockNumber", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "getL2OutputAfter", + "outputs": [ + { + "name": "", + "internalType": "struct Types.OutputProposal", + "type": "tuple", + "components": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "timestamp", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "l2BlockNumber", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "getL2OutputIndexAfter", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_startingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_startingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "latestBlockNumber", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "latestOutputIndex", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "nextBlockNumber", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "nextOutputIndex", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_l2BlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_l1BlockHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_l1BlockNumber", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "proposeL2Output", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "startingBlockNumber", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "startingTimestamp", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "OptimismMintableERC20Factory": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "deployer", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "OptimismMintableERC20Created" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "StandardL2TokenCreated" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "BRIDGE", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createOptimismMintableERC20", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createStandardL2Token", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "OptimismPortal": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_l2Oracle", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "_guardian", + "internalType": "address", + "type": "address" + }, + { + "name": "_paused", + "internalType": "bool", + "type": "bool" + }, + { + "name": "_config", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "account", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "Paused" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "version", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "opaqueData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "TransactionDeposited" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "account", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "Unpaused" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "withdrawalHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + }, + { + "name": "success", + "internalType": "bool", + "type": "bool", + "indexed": false + } + ], + "name": "WithdrawalFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "withdrawalHash", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "WithdrawalProven" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "GUARDIAN", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "L2_ORACLE", + "outputs": [ + { + "name": "", + "internalType": "contract L2OutputOracle", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "SYSTEM_CONFIG", + "outputs": [ + { + "name": "", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_isCreation", + "internalType": "bool", + "type": "bool" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "depositTransaction", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [], + "name": "donateETH", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_tx", + "internalType": "struct Types.WithdrawalTransaction", + "type": "tuple", + "components": [ + { + "name": "nonce", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "sender", + "internalType": "address", + "type": "address" + }, + { + "name": "target", + "internalType": "address", + "type": "address" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + } + ] + } + ], + "name": "finalizeWithdrawalTransaction", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "finalizedWithdrawals", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_paused", + "internalType": "bool", + "type": "bool" + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "isOutputFinalized", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2Sender", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "pure", + "type": "function", + "inputs": [ + { + "name": "_byteCount", + "internalType": "uint64", + "type": "uint64" + } + ], + "name": "minimumGasLimit", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "params", + "outputs": [ + { + "name": "prevBaseFee", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "prevBoughtGas", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "prevBlockNum", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "pause", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "paused", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_tx", + "internalType": "struct Types.WithdrawalTransaction", + "type": "tuple", + "components": [ + { + "name": "nonce", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "sender", + "internalType": "address", + "type": "address" + }, + { + "name": "target", + "internalType": "address", + "type": "address" + }, + { + "name": "value", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "gasLimit", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + } + ] + }, + { + "name": "_l2OutputIndex", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_outputRootProof", + "internalType": "struct Types.OutputRootProof", + "type": "tuple", + "components": [ + { + "name": "version", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "stateRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "messagePasserStorageRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "latestBlockhash", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "name": "_withdrawalProof", + "internalType": "bytes[]", + "type": "bytes[]" + } + ], + "name": "proveWithdrawalTransaction", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "provenWithdrawals", + "outputs": [ + { + "name": "outputRoot", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "timestamp", + "internalType": "uint128", + "type": "uint128" + }, + { + "name": "l2OutputIndex", + "internalType": "uint128", + "type": "uint128" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "unpause", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "PortalSender": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_portal", + "internalType": "contract OptimismPortal", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PORTAL", + "outputs": [ + { + "name": "", + "internalType": "contract OptimismPortal", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "donate", + "outputs": [] + } + ], + "ProxyAdmin": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "addressManager", + "outputs": [ + { + "name": "", + "internalType": "contract AddressManager", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_newAdmin", + "internalType": "address", + "type": "address" + } + ], + "name": "changeProxyAdmin", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + } + ], + "name": "getProxyAdmin", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address", + "type": "address" + } + ], + "name": "getProxyImplementation", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "implementationName", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "isUpgrading", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "proxyType", + "outputs": [ + { + "name": "", + "internalType": "enum ProxyAdmin.ProxyType", + "type": "uint8" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_address", + "internalType": "address", + "type": "address" + } + ], + "name": "setAddress", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_address", + "internalType": "contract AddressManager", + "type": "address" + } + ], + "name": "setAddressManager", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_address", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + } + ], + "name": "setImplementationName", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_address", + "internalType": "address", + "type": "address" + }, + { + "name": "_type", + "internalType": "enum ProxyAdmin.ProxyType", + "type": "uint8" + } + ], + "name": "setProxyType", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_upgrading", + "internalType": "bool", + "type": "bool" + } + ], + "name": "setUpgrading", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_implementation", + "internalType": "address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_proxy", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_implementation", + "internalType": "address", + "type": "address" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "upgradeAndCall", + "outputs": [] + } + ], + "SystemConfig": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + }, + { + "name": "_overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "_config", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint256", + "type": "uint256", + "indexed": true + }, + { + "name": "updateType", + "internalType": "enum SystemConfig.UpdateType", + "type": "uint8", + "indexed": true + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ConfigUpdate" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "UNSAFE_BLOCK_SIGNER_SLOT", + "outputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "batcherHash", + "outputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "gasLimit", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + }, + { + "name": "_overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "_unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "_config", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "minimumGasLimit", + "outputs": [ + { + "name": "", + "internalType": "uint64", + "type": "uint64" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "overhead", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "resourceConfig", + "outputs": [ + { + "name": "", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "scalar", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_batcherHash", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "setBatcherHash", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_scalar", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "setGasConfig", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_gasLimit", + "internalType": "uint64", + "type": "uint64" + } + ], + "name": "setGasLimit", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_config", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", "type": "uint32" }, { - "name": "elasticityMultiplier", - "internalType": "uint8", - "type": "uint8" + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ], + "name": "setResourceConfig", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_unsafeBlockSigner", + "internalType": "address", + "type": "address" + } + ], + "name": "setUnsafeBlockSigner", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "unsafeBlockSigner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "SystemDictator": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "EXIT_1_NO_RETURN_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PROXY_TRANSFER_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "config", + "outputs": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "resourceConfig", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "currentStep", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "dynamicConfigSet", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "exit1", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "exited", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "finalize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "finalized", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_config", + "internalType": "struct SystemDictator.DeployConfig", + "type": "tuple", + "components": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + }, + { + "name": "resourceConfig", + "internalType": "struct ResourceMetering.ResourceConfig", + "type": "tuple", + "components": [ + { + "name": "maxResourceLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "elasticityMultiplier", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "baseFeeMaxChangeDenominator", + "internalType": "uint8", + "type": "uint8" + }, + { + "name": "minimumBaseFee", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "systemTxMaxGas", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "maximumBaseFee", + "internalType": "uint128", + "type": "uint128" + } + ] + } + ] + } + ] + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2OutputOracleDynamicConfig", + "outputs": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "oldL1CrossDomainMessenger", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "optimismPortalDynamicConfig", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "phase1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "phase2", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step2", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step3", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step4", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step5", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l2OutputOracleDynamicConfig", + "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "name": "_optimismPortalDynamicConfig", + "internalType": "bool", + "type": "bool" + } + ], + "name": "updateDynamicConfig", + "outputs": [] + } + ], + "SystemDictator_goerli": [ + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "previousOwner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnershipTransferred" + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "EXIT_1_NO_RETURN_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "PROXY_TRANSFER_STEP", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "config", + "outputs": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + } + ] + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "currentStep", + "outputs": [ + { + "name": "", + "internalType": "uint8", + "type": "uint8" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "dynamicConfigSet", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "exit1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "finalize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "finalized", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_config", + "internalType": "struct SystemDictator.DeployConfig", + "type": "tuple", + "components": [ + { + "name": "globalConfig", + "internalType": "struct SystemDictator.GlobalConfig", + "type": "tuple", + "components": [ + { + "name": "addressManager", + "internalType": "contract AddressManager", + "type": "address" + }, + { + "name": "proxyAdmin", + "internalType": "contract ProxyAdmin", + "type": "address" + }, + { + "name": "controller", + "internalType": "address", + "type": "address" + }, + { + "name": "finalOwner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "proxyAddressConfig", + "internalType": "struct SystemDictator.ProxyAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismPortalProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1StandardBridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "l1ERC721BridgeProxy", + "internalType": "address", + "type": "address" + }, + { + "name": "systemConfigProxy", + "internalType": "address", + "type": "address" + } + ] + }, + { + "name": "implementationAddressConfig", + "internalType": "struct SystemDictator.ImplementationAddressConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleImpl", + "internalType": "contract L2OutputOracle", + "type": "address" + }, + { + "name": "optimismPortalImpl", + "internalType": "contract OptimismPortal", + "type": "address" + }, + { + "name": "l1CrossDomainMessengerImpl", + "internalType": "contract L1CrossDomainMessenger", + "type": "address" + }, + { + "name": "l1StandardBridgeImpl", + "internalType": "contract L1StandardBridge", + "type": "address" + }, + { + "name": "optimismMintableERC20FactoryImpl", + "internalType": "contract OptimismMintableERC20Factory", + "type": "address" + }, + { + "name": "l1ERC721BridgeImpl", + "internalType": "contract L1ERC721Bridge", + "type": "address" + }, + { + "name": "portalSenderImpl", + "internalType": "contract PortalSender", + "type": "address" + }, + { + "name": "systemConfigImpl", + "internalType": "contract SystemConfig", + "type": "address" + } + ] + }, + { + "name": "systemConfigConfig", + "internalType": "struct SystemDictator.SystemConfigConfig", + "type": "tuple", + "components": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "overhead", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "scalar", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "batcherHash", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "gasLimit", + "internalType": "uint64", + "type": "uint64" + }, + { + "name": "unsafeBlockSigner", + "internalType": "address", + "type": "address" + } + ] + } + ] + } + ], + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "l2OutputOracleDynamicConfig", + "outputs": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "oldL1CrossDomainMessenger", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step1", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step2", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step3", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step4", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step5", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "step6", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_l2OutputOracleDynamicConfig", + "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig", + "type": "tuple", + "components": [ + { + "name": "l2OutputOracleStartingBlockNumber", + "internalType": "uint256", + "type": "uint256" }, { - "name": "baseFeeMaxChangeDenominator", - "internalType": "uint8", - "type": "uint8" - }, + "name": "l2OutputOracleStartingTimestamp", + "internalType": "uint256", + "type": "uint256" + } + ] + } + ], + "name": "updateL2OutputOracleDynamicConfig", + "outputs": [] + } + ], + "TeleportrWithdrawer": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "user", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "newOwner", + "internalType": "address", + "type": "address", + "indexed": true + } + ], + "name": "OwnerUpdated" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "ReceivedETH" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "withdrawer", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "recipient", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "asset", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "WithdrewERC20" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "withdrawer", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "recipient", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "asset", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "id", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "WithdrewERC721" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "withdrawer", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "recipient", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "amount", + "internalType": "uint256", + "type": "uint256", + "indexed": false + } + ], + "name": "WithdrewETH" + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_gas", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_value", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "CALL", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + }, + { + "name": "", + "internalType": "bytes", + "type": "bytes" + } + ] + }, + { + "stateMutability": "payable", + "type": "function", + "inputs": [ + { + "name": "_target", + "internalType": "address", + "type": "address" + }, + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + }, + { + "name": "_gas", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "DELEGATECALL", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + }, + { + "name": "", + "internalType": "bytes", + "type": "bytes" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "data", + "outputs": [ + { + "name": "", + "internalType": "bytes", + "type": "bytes" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "recipient", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "setData", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_recipient", + "internalType": "address", + "type": "address" + } + ], + "name": "setRecipient", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_teleportr", + "internalType": "address", + "type": "address" + } + ], + "name": "setTeleportr", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "teleportr", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "withdrawERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_asset", + "internalType": "contract ERC20", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + } + ], + "name": "withdrawERC20", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_asset", + "internalType": "contract ERC721", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_id", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "withdrawERC721", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address payable", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "withdrawETH", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_to", + "internalType": "address payable", + "type": "address" + } + ], + "name": "withdrawETH", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [], + "name": "withdrawFromTeleportr", + "outputs": [] + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "AttestationStation": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "creator", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "about", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "key", + "internalType": "bytes32", + "type": "bytes32", + "indexed": true + }, + { + "name": "val", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "AttestationCreated" + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_attestations", + "internalType": "struct AttestationStation.AttestationData[]", + "type": "tuple[]", + "components": [ { - "name": "minimumBaseFee", - "internalType": "uint32", - "type": "uint32" + "name": "about", + "internalType": "address", + "type": "address" }, { - "name": "systemTxMaxGas", - "internalType": "uint32", - "type": "uint32" + "name": "key", + "internalType": "bytes32", + "type": "bytes32" }, { - "name": "maximumBaseFee", - "internalType": "uint128", - "type": "uint128" + "name": "val", + "internalType": "bytes", + "type": "bytes" } ] } + ], + "name": "attest", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_about", + "internalType": "address", + "type": "address" + }, + { + "name": "_key", + "internalType": "bytes32", + "type": "bytes32" + }, + { + "name": "_val", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "attest", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "attestations", + "outputs": [ + { + "name": "", + "internalType": "bytes", + "type": "bytes" + } ] }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "scalar", + "name": "version", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "string", + "type": "string" } ] - }, + } + ], + "L2ERC721Bridge": [ { "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "inputs": [ { - "name": "_batcherHash", - "internalType": "bytes32", - "type": "bytes32" + "name": "_messenger", + "internalType": "address", + "type": "address" + }, + { + "name": "_otherBridge", + "internalType": "address", + "type": "address" } - ], - "name": "setBatcherHash", - "outputs": [] + ] }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_overhead", + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", "internalType": "uint256", - "type": "uint256" + "type": "uint256", + "indexed": false }, { - "name": "_scalar", + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false + } + ], + "name": "ERC721BridgeFinalized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "from", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "to", + "internalType": "address", + "type": "address", + "indexed": false + }, + { + "name": "tokenId", "internalType": "uint256", - "type": "uint256" + "type": "uint256", + "indexed": false + }, + { + "name": "extraData", + "internalType": "bytes", + "type": "bytes", + "indexed": false } ], - "name": "setGasConfig", - "outputs": [] + "name": "ERC721BridgeInitiated" }, { "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "_gasLimit", - "internalType": "uint64", - "type": "uint64" + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" } ], - "name": "setGasLimit", + "name": "bridgeERC721", "outputs": [] }, { @@ -3371,44 +7840,37 @@ "type": "function", "inputs": [ { - "name": "_config", - "internalType": "struct ResourceMetering.ResourceConfig", - "type": "tuple", - "components": [ - { - "name": "maxResourceLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "elasticityMultiplier", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "baseFeeMaxChangeDenominator", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "minimumBaseFee", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "systemTxMaxGas", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "maximumBaseFee", - "internalType": "uint128", - "type": "uint128" - } - ] + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_minGasLimit", + "internalType": "uint32", + "type": "uint32" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" } ], - "name": "setResourceConfig", + "name": "bridgeERC721To", "outputs": [] }, { @@ -3416,32 +7878,57 @@ "type": "function", "inputs": [ { - "name": "_unsafeBlockSigner", + "name": "_localToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteToken", "internalType": "address", "type": "address" + }, + { + "name": "_from", + "internalType": "address", + "type": "address" + }, + { + "name": "_to", + "internalType": "address", + "type": "address" + }, + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "_extraData", + "internalType": "bytes", + "type": "bytes" } ], - "name": "setUnsafeBlockSigner", + "name": "finalizeBridgeERC721", "outputs": [] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [ + "inputs": [], + "name": "messenger", + "outputs": [ { - "name": "newOwner", - "internalType": "address", + "name": "", + "internalType": "contract CrossDomainMessenger", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [] + ] }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "unsafeBlockSigner", + "name": "otherBridge", "outputs": [ { "name": "", @@ -3464,24 +7951,22 @@ ] } ], - "SystemDictator": [ + "MintManager": [ { "stateMutability": "nonpayable", "type": "constructor", - "inputs": [] - }, - { - "type": "event", - "anonymous": false, "inputs": [ { - "name": "version", - "internalType": "uint8", - "type": "uint8", - "indexed": false + "name": "_upgrader", + "internalType": "address", + "type": "address" + }, + { + "name": "_governanceToken", + "internalType": "address", + "type": "address" } - ], - "name": "Initialized" + ] }, { "type": "event", @@ -3506,223 +7991,25 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "EXIT_1_NO_RETURN_STEP", - "outputs": [ - { - "name": "", - "internalType": "uint8", - "type": "uint8" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "PROXY_TRANSFER_STEP", + "name": "DENOMINATOR", "outputs": [ { "name": "", - "internalType": "uint8", - "type": "uint8" + "internalType": "uint256", + "type": "uint256" } ] }, { "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "config", - "outputs": [ - { - "name": "globalConfig", - "internalType": "struct SystemDictator.GlobalConfig", - "type": "tuple", - "components": [ - { - "name": "addressManager", - "internalType": "contract AddressManager", - "type": "address" - }, - { - "name": "proxyAdmin", - "internalType": "contract ProxyAdmin", - "type": "address" - }, - { - "name": "controller", - "internalType": "address", - "type": "address" - }, - { - "name": "finalOwner", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "proxyAddressConfig", - "internalType": "struct SystemDictator.ProxyAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismPortalProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1StandardBridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1ERC721BridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "systemConfigProxy", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "implementationAddressConfig", - "internalType": "struct SystemDictator.ImplementationAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleImpl", - "internalType": "contract L2OutputOracle", - "type": "address" - }, - { - "name": "optimismPortalImpl", - "internalType": "contract OptimismPortal", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerImpl", - "internalType": "contract L1CrossDomainMessenger", - "type": "address" - }, - { - "name": "l1StandardBridgeImpl", - "internalType": "contract L1StandardBridge", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryImpl", - "internalType": "contract OptimismMintableERC20Factory", - "type": "address" - }, - { - "name": "l1ERC721BridgeImpl", - "internalType": "contract L1ERC721Bridge", - "type": "address" - }, - { - "name": "portalSenderImpl", - "internalType": "contract PortalSender", - "type": "address" - }, - { - "name": "systemConfigImpl", - "internalType": "contract SystemConfig", - "type": "address" - } - ] - }, - { - "name": "systemConfigConfig", - "internalType": "struct SystemDictator.SystemConfigConfig", - "type": "tuple", - "components": [ - { - "name": "owner", - "internalType": "address", - "type": "address" - }, - { - "name": "overhead", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "scalar", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "batcherHash", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "gasLimit", - "internalType": "uint64", - "type": "uint64" - }, - { - "name": "unsafeBlockSigner", - "internalType": "address", - "type": "address" - }, - { - "name": "resourceConfig", - "internalType": "struct ResourceMetering.ResourceConfig", - "type": "tuple", - "components": [ - { - "name": "maxResourceLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "elasticityMultiplier", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "baseFeeMaxChangeDenominator", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "minimumBaseFee", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "systemTxMaxGas", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "maximumBaseFee", - "internalType": "uint128", - "type": "uint128" - } - ] - } - ] + "type": "function", + "inputs": [], + "name": "MINT_CAP", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" } ] }, @@ -3730,12 +8017,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "currentStep", + "name": "MINT_PERIOD", "outputs": [ { "name": "", - "internalType": "uint8", - "type": "uint8" + "internalType": "uint256", + "type": "uint256" } ] }, @@ -3743,283 +8030,169 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "dynamicConfigSet", + "name": "governanceToken", "outputs": [ { "name": "", - "internalType": "bool", - "type": "bool" + "internalType": "contract GovernanceToken", + "type": "address" } ] }, { "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "exit1", + "inputs": [ + { + "name": "_account", + "internalType": "address", + "type": "address" + }, + { + "name": "_amount", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "mint", "outputs": [] }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "exited", + "name": "mintPermittedAfter", "outputs": [ { "name": "", - "internalType": "bool", - "type": "bool" + "internalType": "uint256", + "type": "uint256" } ] }, - { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "finalize", - "outputs": [] - }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "finalized", + "name": "owner", "outputs": [ { "name": "", - "internalType": "bool", - "type": "bool" + "internalType": "address", + "type": "address" } ] }, { "stateMutability": "nonpayable", "type": "function", - "inputs": [ - { - "name": "_config", - "internalType": "struct SystemDictator.DeployConfig", - "type": "tuple", - "components": [ - { - "name": "globalConfig", - "internalType": "struct SystemDictator.GlobalConfig", - "type": "tuple", - "components": [ - { - "name": "addressManager", - "internalType": "contract AddressManager", - "type": "address" - }, - { - "name": "proxyAdmin", - "internalType": "contract ProxyAdmin", - "type": "address" - }, - { - "name": "controller", - "internalType": "address", - "type": "address" - }, - { - "name": "finalOwner", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "proxyAddressConfig", - "internalType": "struct SystemDictator.ProxyAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismPortalProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1StandardBridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1ERC721BridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "systemConfigProxy", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "implementationAddressConfig", - "internalType": "struct SystemDictator.ImplementationAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleImpl", - "internalType": "contract L2OutputOracle", - "type": "address" - }, - { - "name": "optimismPortalImpl", - "internalType": "contract OptimismPortal", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerImpl", - "internalType": "contract L1CrossDomainMessenger", - "type": "address" - }, - { - "name": "l1StandardBridgeImpl", - "internalType": "contract L1StandardBridge", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryImpl", - "internalType": "contract OptimismMintableERC20Factory", - "type": "address" - }, - { - "name": "l1ERC721BridgeImpl", - "internalType": "contract L1ERC721Bridge", - "type": "address" - }, - { - "name": "portalSenderImpl", - "internalType": "contract PortalSender", - "type": "address" - }, - { - "name": "systemConfigImpl", - "internalType": "contract SystemConfig", - "type": "address" - } - ] - }, - { - "name": "systemConfigConfig", - "internalType": "struct SystemDictator.SystemConfigConfig", - "type": "tuple", - "components": [ - { - "name": "owner", - "internalType": "address", - "type": "address" - }, - { - "name": "overhead", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "scalar", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "batcherHash", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "gasLimit", - "internalType": "uint64", - "type": "uint64" - }, - { - "name": "unsafeBlockSigner", - "internalType": "address", - "type": "address" - }, - { - "name": "resourceConfig", - "internalType": "struct ResourceMetering.ResourceConfig", - "type": "tuple", - "components": [ - { - "name": "maxResourceLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "elasticityMultiplier", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "baseFeeMaxChangeDenominator", - "internalType": "uint8", - "type": "uint8" - }, - { - "name": "minimumBaseFee", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "systemTxMaxGas", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "maximumBaseFee", - "internalType": "uint128", - "type": "uint128" - } - ] - } - ] - } - ] + "inputs": [], + "name": "renounceOwnership", + "outputs": [] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "newOwner", + "internalType": "address", + "type": "address" } ], - "name": "initialize", + "name": "transferOwnership", "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "l2OutputOracleDynamicConfig", - "outputs": [ + "inputs": [ { - "name": "l2OutputOracleStartingBlockNumber", - "internalType": "uint256", - "type": "uint256" + "name": "_newMintManager", + "internalType": "address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [] + } + ], + "OptimismMintableERC721Factory": [ + { + "stateMutability": "nonpayable", + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "internalType": "address", + "type": "address" }, { - "name": "l2OutputOracleStartingTimestamp", + "name": "_remoteChainId", "internalType": "uint256", "type": "uint256" } ] }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "deployer", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "OptimismMintableERC721Created" + }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "oldL1CrossDomainMessenger", + "name": "bridge", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] + }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createOptimismMintableERC721", "outputs": [ { "name": "", @@ -4031,8 +8204,14 @@ { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "optimismPortalDynamicConfig", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "isOptimismMintableERC721", "outputs": [ { "name": "", @@ -4045,116 +8224,241 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "owner", + "name": "remoteChainId", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "uint256", + "type": "uint256" } ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [], - "name": "phase1", - "outputs": [] - }, + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "OptimismMintableERC721Factory_optimism-goerli": [ { "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "phase2", - "outputs": [] + "type": "constructor", + "inputs": [ + { + "name": "_bridge", + "internalType": "address", + "type": "address" + }, + { + "name": "_remoteChainId", + "internalType": "uint256", + "type": "uint256" + } + ] }, { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "renounceOwnership", - "outputs": [] + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "localToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "remoteToken", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "deployer", + "internalType": "address", + "type": "address", + "indexed": false + } + ], + "name": "OptimismMintableERC721Created" }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [], - "name": "step1", - "outputs": [] + "name": "BRIDGE", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [], - "name": "step2", - "outputs": [] + "name": "REMOTE_CHAIN_ID", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] }, { "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "step3", - "outputs": [] + "inputs": [ + { + "name": "_remoteToken", + "internalType": "address", + "type": "address" + }, + { + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + } + ], + "name": "createOptimismMintableERC721", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [], - "name": "step4", - "outputs": [] + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + } + ], + "name": "isOptimismMintableERC721", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [], - "name": "step5", - "outputs": [] - }, + "name": "version", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] + } + ], + "Optimist": [ { "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "inputs": [ { - "name": "newOwner", + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" + }, + { + "name": "_baseURIAttestor", "internalType": "address", "type": "address" + }, + { + "name": "_attestationStation", + "internalType": "contract AttestationStation", + "type": "address" + }, + { + "name": "_optimistAllowlist", + "internalType": "contract OptimistAllowlist", + "type": "address" + } + ] + }, + { + "type": "event", + "anonymous": false, + "inputs": [ + { + "name": "owner", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "approved", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": true } ], - "name": "transferOwnership", - "outputs": [] + "name": "Approval" }, { - "stateMutability": "nonpayable", - "type": "function", + "type": "event", + "anonymous": false, "inputs": [ { - "name": "_l2OutputOracleDynamicConfig", - "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleStartingBlockNumber", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "l2OutputOracleStartingTimestamp", - "internalType": "uint256", - "type": "uint256" - } - ] + "name": "owner", + "internalType": "address", + "type": "address", + "indexed": true }, { - "name": "_optimismPortalDynamicConfig", + "name": "operator", + "internalType": "address", + "type": "address", + "indexed": true + }, + { + "name": "approved", "internalType": "bool", - "type": "bool" + "type": "bool", + "indexed": false } ], - "name": "updateDynamicConfig", - "outputs": [] - } - ], - "SystemDictator_goerli": [ + "name": "ApprovalForAll" + }, { "type": "event", "anonymous": false, @@ -4173,30 +8477,36 @@ "anonymous": false, "inputs": [ { - "name": "previousOwner", + "name": "from", "internalType": "address", "type": "address", "indexed": true }, { - "name": "newOwner", + "name": "to", "internalType": "address", "type": "address", "indexed": true + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256", + "indexed": true } ], - "name": "OwnershipTransferred" + "name": "Transfer" }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "EXIT_1_NO_RETURN_STEP", + "name": "ATTESTATION_STATION", "outputs": [ { "name": "", - "internalType": "uint8", - "type": "uint8" + "internalType": "contract AttestationStation", + "type": "address" } ] }, @@ -4204,12 +8514,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "PROXY_TRANSFER_STEP", + "name": "BASE_URI_ATTESTATION_KEY", "outputs": [ { "name": "", - "internalType": "uint8", - "type": "uint8" + "internalType": "bytes32", + "type": "bytes32" } ] }, @@ -4217,160 +8527,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "config", - "outputs": [ - { - "name": "globalConfig", - "internalType": "struct SystemDictator.GlobalConfig", - "type": "tuple", - "components": [ - { - "name": "addressManager", - "internalType": "contract AddressManager", - "type": "address" - }, - { - "name": "proxyAdmin", - "internalType": "contract ProxyAdmin", - "type": "address" - }, - { - "name": "controller", - "internalType": "address", - "type": "address" - }, - { - "name": "finalOwner", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "proxyAddressConfig", - "internalType": "struct SystemDictator.ProxyAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismPortalProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1StandardBridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1ERC721BridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "systemConfigProxy", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "implementationAddressConfig", - "internalType": "struct SystemDictator.ImplementationAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleImpl", - "internalType": "contract L2OutputOracle", - "type": "address" - }, - { - "name": "optimismPortalImpl", - "internalType": "contract OptimismPortal", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerImpl", - "internalType": "contract L1CrossDomainMessenger", - "type": "address" - }, - { - "name": "l1StandardBridgeImpl", - "internalType": "contract L1StandardBridge", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryImpl", - "internalType": "contract OptimismMintableERC20Factory", - "type": "address" - }, - { - "name": "l1ERC721BridgeImpl", - "internalType": "contract L1ERC721Bridge", - "type": "address" - }, - { - "name": "portalSenderImpl", - "internalType": "contract PortalSender", - "type": "address" - }, - { - "name": "systemConfigImpl", - "internalType": "contract SystemConfig", - "type": "address" - } - ] - }, - { - "name": "systemConfigConfig", - "internalType": "struct SystemDictator.SystemConfigConfig", - "type": "tuple", - "components": [ - { - "name": "owner", - "internalType": "address", - "type": "address" - }, - { - "name": "overhead", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "scalar", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "batcherHash", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "gasLimit", - "internalType": "uint64", - "type": "uint64" - }, - { - "name": "unsafeBlockSigner", - "internalType": "address", - "type": "address" - } - ] + "name": "BASE_URI_ATTESTOR", + "outputs": [ + { + "name": "", + "internalType": "address", + "type": "address" } ] }, @@ -4378,52 +8540,94 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "currentStep", + "name": "OPTIMIST_ALLOWLIST", "outputs": [ { "name": "", - "internalType": "uint8", - "type": "uint8" + "internalType": "contract OptimistAllowlist", + "type": "address" } ] }, + { + "stateMutability": "pure", + "type": "function", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [] + }, { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "dynamicConfigSet", + "inputs": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + } + ], + "name": "balanceOf", "outputs": [ { "name": "", - "internalType": "bool", - "type": "bool" + "internalType": "uint256", + "type": "uint256" } ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [], - "name": "exit1", - "outputs": [] + "name": "baseURI", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] }, { "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "finalize", + "inputs": [ + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "burn", "outputs": [] }, { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "finalized", + "inputs": [ + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "getApproved", "outputs": [ { "name": "", - "internalType": "bool", - "type": "bool" + "internalType": "address", + "type": "address" } ] }, @@ -4432,164 +8636,14 @@ "type": "function", "inputs": [ { - "name": "_config", - "internalType": "struct SystemDictator.DeployConfig", - "type": "tuple", - "components": [ - { - "name": "globalConfig", - "internalType": "struct SystemDictator.GlobalConfig", - "type": "tuple", - "components": [ - { - "name": "addressManager", - "internalType": "contract AddressManager", - "type": "address" - }, - { - "name": "proxyAdmin", - "internalType": "contract ProxyAdmin", - "type": "address" - }, - { - "name": "controller", - "internalType": "address", - "type": "address" - }, - { - "name": "finalOwner", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "proxyAddressConfig", - "internalType": "struct SystemDictator.ProxyAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismPortalProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1StandardBridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "l1ERC721BridgeProxy", - "internalType": "address", - "type": "address" - }, - { - "name": "systemConfigProxy", - "internalType": "address", - "type": "address" - } - ] - }, - { - "name": "implementationAddressConfig", - "internalType": "struct SystemDictator.ImplementationAddressConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleImpl", - "internalType": "contract L2OutputOracle", - "type": "address" - }, - { - "name": "optimismPortalImpl", - "internalType": "contract OptimismPortal", - "type": "address" - }, - { - "name": "l1CrossDomainMessengerImpl", - "internalType": "contract L1CrossDomainMessenger", - "type": "address" - }, - { - "name": "l1StandardBridgeImpl", - "internalType": "contract L1StandardBridge", - "type": "address" - }, - { - "name": "optimismMintableERC20FactoryImpl", - "internalType": "contract OptimismMintableERC20Factory", - "type": "address" - }, - { - "name": "l1ERC721BridgeImpl", - "internalType": "contract L1ERC721Bridge", - "type": "address" - }, - { - "name": "portalSenderImpl", - "internalType": "contract PortalSender", - "type": "address" - }, - { - "name": "systemConfigImpl", - "internalType": "contract SystemConfig", - "type": "address" - } - ] - }, - { - "name": "systemConfigConfig", - "internalType": "struct SystemDictator.SystemConfigConfig", - "type": "tuple", - "components": [ - { - "name": "owner", - "internalType": "address", - "type": "address" - }, - { - "name": "overhead", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "scalar", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "batcherHash", - "internalType": "bytes32", - "type": "bytes32" - }, - { - "name": "gasLimit", - "internalType": "uint64", - "type": "uint64" - }, - { - "name": "unsafeBlockSigner", - "internalType": "address", - "type": "address" - } - ] - } - ] + "name": "_name", + "internalType": "string", + "type": "string" + }, + { + "name": "_symbol", + "internalType": "string", + "type": "string" } ], "name": "initialize", @@ -4598,39 +8652,83 @@ { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "l2OutputOracleDynamicConfig", - "outputs": [ + "inputs": [ + { + "name": "owner", + "internalType": "address", + "type": "address" + }, + { + "name": "operator", + "internalType": "address", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ { - "name": "l2OutputOracleStartingBlockNumber", - "internalType": "uint256", - "type": "uint256" - }, + "name": "_recipient", + "internalType": "address", + "type": "address" + } + ], + "name": "isOnAllowList", + "outputs": [ { - "name": "l2OutputOracleStartingTimestamp", - "internalType": "uint256", - "type": "uint256" + "name": "", + "internalType": "bool", + "type": "bool" } ] }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_recipient", + "internalType": "address", + "type": "address" + } + ], + "name": "mint", + "outputs": [] + }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "oldL1CrossDomainMessenger", + "name": "name", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "string", + "type": "string" } ] }, { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "owner", + "inputs": [ + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "ownerOf", "outputs": [ { "name": "", @@ -4642,137 +8740,203 @@ { "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address" + }, + { + "name": "to", + "internalType": "address", + "type": "address" + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "safeTransferFrom", "outputs": [] }, { "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "step1", + "inputs": [ + { + "name": "from", + "internalType": "address", + "type": "address" + }, + { + "name": "to", + "internalType": "address", + "type": "address" + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256" + }, + { + "name": "data", + "internalType": "bytes", + "type": "bytes" + } + ], + "name": "safeTransferFrom", "outputs": [] }, { "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "step2", + "inputs": [ + { + "name": "", + "internalType": "address", + "type": "address" + }, + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ], + "name": "setApprovalForAll", "outputs": [] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [], - "name": "step3", - "outputs": [] + "inputs": [ + { + "name": "interfaceId", + "internalType": "bytes4", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [], - "name": "step4", - "outputs": [] + "name": "symbol", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", - "inputs": [], - "name": "step5", - "outputs": [] + "inputs": [ + { + "name": "_owner", + "internalType": "address", + "type": "address" + } + ], + "name": "tokenIdOfAddress", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [], - "name": "step6", - "outputs": [] + "inputs": [ + { + "name": "_tokenId", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "name": "", + "internalType": "string", + "type": "string" + } + ] }, { "stateMutability": "nonpayable", "type": "function", "inputs": [ { - "name": "newOwner", + "name": "from", + "internalType": "address", + "type": "address" + }, + { + "name": "to", "internalType": "address", "type": "address" + }, + { + "name": "tokenId", + "internalType": "uint256", + "type": "uint256" } ], - "name": "transferOwnership", + "name": "transferFrom", "outputs": [] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [ + "inputs": [], + "name": "version", + "outputs": [ { - "name": "_l2OutputOracleDynamicConfig", - "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig", - "type": "tuple", - "components": [ - { - "name": "l2OutputOracleStartingBlockNumber", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "l2OutputOracleStartingTimestamp", - "internalType": "uint256", - "type": "uint256" - } - ] + "name": "", + "internalType": "string", + "type": "string" } - ], - "name": "updateL2OutputOracleDynamicConfig", - "outputs": [] + ] } ], - "MintManager": [ + "OptimistAllowlist": [ { "stateMutability": "nonpayable", "type": "constructor", "inputs": [ { - "name": "_upgrader", - "internalType": "address", + "name": "_attestationStation", + "internalType": "contract AttestationStation", "type": "address" }, { - "name": "_governanceToken", + "name": "_allowlistAttestor", "internalType": "address", "type": "address" - } - ] - }, - { - "type": "event", - "anonymous": false, - "inputs": [ + }, { - "name": "previousOwner", + "name": "_coinbaseQuestAttestor", "internalType": "address", - "type": "address", - "indexed": true + "type": "address" }, { - "name": "newOwner", + "name": "_optimistInviter", "internalType": "address", - "type": "address", - "indexed": true - } - ], - "name": "OwnershipTransferred" - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "DENOMINATOR", - "outputs": [ - { - "name": "", - "internalType": "uint256", - "type": "uint256" + "type": "address" } ] }, @@ -4780,12 +8944,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "MINT_CAP", + "name": "ALLOWLIST_ATTESTOR", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "address", + "type": "address" } ] }, @@ -4793,12 +8957,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "MINT_PERIOD", + "name": "ATTESTATION_STATION", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "contract AttestationStation", + "type": "address" } ] }, @@ -4806,43 +8970,38 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "governanceToken", + "name": "COINBASE_QUEST_ATTESTOR", "outputs": [ { "name": "", - "internalType": "contract GovernanceToken", + "internalType": "address", "type": "address" } ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_account", - "internalType": "address", - "type": "address" - }, + "inputs": [], + "name": "COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY", + "outputs": [ { - "name": "_amount", - "internalType": "uint256", - "type": "uint256" + "name": "", + "internalType": "bytes32", + "type": "bytes32" } - ], - "name": "mint", - "outputs": [] + ] }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "mintPermittedAfter", + "name": "OPTIMIST_CAN_MINT_ATTESTATION_KEY", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "bytes32", + "type": "bytes32" } ] }, @@ -4850,7 +9009,7 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "owner", + "name": "OPTIMIST_INVITER", "outputs": [ { "name": "", @@ -4860,53 +9019,52 @@ ] }, { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [], - "name": "renounceOwnership", - "outputs": [] - }, - { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "inputs": [ { - "name": "newOwner", + "name": "_claimer", "internalType": "address", "type": "address" } ], - "name": "transferOwnership", - "outputs": [] + "name": "isAllowedToMint", + "outputs": [ + { + "name": "", + "internalType": "bool", + "type": "bool" + } + ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [ + "inputs": [], + "name": "version", + "outputs": [ { - "name": "_newMintManager", - "internalType": "address", - "type": "address" + "name": "", + "internalType": "string", + "type": "string" } - ], - "name": "upgrade", - "outputs": [] + ] } ], - "OptimismMintableERC721Factory": [ + "OptimistInviter": [ { "stateMutability": "nonpayable", "type": "constructor", "inputs": [ { - "name": "_bridge", + "name": "_inviteGranter", "internalType": "address", "type": "address" }, { - "name": "_remoteChainId", - "internalType": "uint256", - "type": "uint256" + "name": "_attestationStation", + "internalType": "contract AttestationStation", + "type": "address" } ] }, @@ -4915,84 +9073,69 @@ "anonymous": false, "inputs": [ { - "name": "localToken", - "internalType": "address", - "type": "address", - "indexed": true - }, + "name": "version", + "internalType": "uint8", + "type": "uint8", + "indexed": false + } + ], + "name": "Initialized" + }, + { + "type": "event", + "anonymous": false, + "inputs": [ { - "name": "remoteToken", + "name": "issuer", "internalType": "address", "type": "address", "indexed": true }, { - "name": "deployer", + "name": "claimer", "internalType": "address", "type": "address", - "indexed": false + "indexed": true } ], - "name": "OptimismMintableERC721Created" + "name": "InviteClaimed" }, { "stateMutability": "view", "type": "function", "inputs": [], - "name": "bridge", + "name": "ATTESTATION_STATION", "outputs": [ { "name": "", - "internalType": "address", + "internalType": "contract AttestationStation", "type": "address" } ] }, { - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "_remoteToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_name", - "internalType": "string", - "type": "string" - }, - { - "name": "_symbol", - "internalType": "string", - "type": "string" - } - ], - "name": "createOptimismMintableERC721", + "inputs": [], + "name": "CAN_INVITE_ATTESTATION_KEY", "outputs": [ { "name": "", - "internalType": "address", - "type": "address" + "internalType": "bytes32", + "type": "bytes32" } ] }, { "stateMutability": "view", "type": "function", - "inputs": [ - { - "name": "", - "internalType": "address", - "type": "address" - } - ], - "name": "isOptimismMintableERC721", + "inputs": [], + "name": "CLAIMABLE_INVITE_TYPEHASH", "outputs": [ { "name": "", - "internalType": "bool", - "type": "bool" + "internalType": "bytes32", + "type": "bytes32" } ] }, @@ -5000,12 +9143,12 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "remoteChainId", + "name": "EIP712_VERSION", "outputs": [ { "name": "", - "internalType": "uint256", - "type": "uint256" + "internalType": "string", + "type": "string" } ] }, @@ -5013,76 +9156,87 @@ "stateMutability": "view", "type": "function", "inputs": [], - "name": "version", + "name": "INVITE_GRANTER", "outputs": [ { "name": "", - "internalType": "string", - "type": "string" + "internalType": "address", + "type": "address" } ] - } - ], - "OptimismMintableERC721Factory_optimism-goerli": [ + }, { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [ - { - "name": "_bridge", - "internalType": "address", - "type": "address" - }, + "stateMutability": "view", + "type": "function", + "inputs": [], + "name": "MIN_COMMITMENT_PERIOD", + "outputs": [ { - "name": "_remoteChainId", + "name": "", "internalType": "uint256", "type": "uint256" } ] }, { - "type": "event", - "anonymous": false, + "stateMutability": "nonpayable", + "type": "function", "inputs": [ { - "name": "localToken", + "name": "_claimer", "internalType": "address", - "type": "address", - "indexed": true + "type": "address" }, { - "name": "remoteToken", - "internalType": "address", - "type": "address", - "indexed": true + "name": "_claimableInvite", + "internalType": "struct OptimistInviter.ClaimableInvite", + "type": "tuple", + "components": [ + { + "name": "issuer", + "internalType": "address", + "type": "address" + }, + { + "name": "nonce", + "internalType": "bytes32", + "type": "bytes32" + } + ] }, { - "name": "deployer", - "internalType": "address", - "type": "address", - "indexed": false + "name": "_signature", + "internalType": "bytes", + "type": "bytes" } ], - "name": "OptimismMintableERC721Created" + "name": "claimInvite", + "outputs": [] }, { - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", - "inputs": [], - "name": "BRIDGE", - "outputs": [ + "inputs": [ { - "name": "", - "internalType": "address", - "type": "address" + "name": "_commitment", + "internalType": "bytes32", + "type": "bytes32" } - ] + ], + "name": "commitInvite", + "outputs": [] }, { "stateMutability": "view", "type": "function", - "inputs": [], - "name": "REMOTE_CHAIN_ID", + "inputs": [ + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" + } + ], + "name": "commitmentTimestamps", "outputs": [ { "name": "", @@ -5095,31 +9249,52 @@ "stateMutability": "nonpayable", "type": "function", "inputs": [ - { - "name": "_remoteToken", - "internalType": "address", - "type": "address" - }, { "name": "_name", "internalType": "string", "type": "string" - }, - { - "name": "_symbol", - "internalType": "string", - "type": "string" } ], - "name": "createOptimismMintableERC721", - "outputs": [ + "name": "initialize", + "outputs": [] + }, + { + "stateMutability": "view", + "type": "function", + "inputs": [ { "name": "", "internalType": "address", "type": "address" } + ], + "name": "inviteCounts", + "outputs": [ + { + "name": "", + "internalType": "uint256", + "type": "uint256" + } ] }, + { + "stateMutability": "nonpayable", + "type": "function", + "inputs": [ + { + "name": "_accounts", + "internalType": "address[]", + "type": "address[]" + }, + { + "name": "_inviteCount", + "internalType": "uint256", + "type": "uint256" + } + ], + "name": "setInviteCounts", + "outputs": [] + }, { "stateMutability": "view", "type": "function", @@ -5128,9 +9303,14 @@ "name": "", "internalType": "address", "type": "address" + }, + { + "name": "", + "internalType": "bytes32", + "type": "bytes32" } ], - "name": "isOptimismMintableERC721", + "name": "usedNonces", "outputs": [ { "name": "", @@ -6083,258 +10263,6 @@ ] } ], - "L2ERC721Bridge": [ - { - "stateMutability": "nonpayable", - "type": "constructor", - "inputs": [ - { - "name": "_messenger", - "internalType": "address", - "type": "address" - }, - { - "name": "_otherBridge", - "internalType": "address", - "type": "address" - } - ] - }, - { - "type": "event", - "anonymous": false, - "inputs": [ - { - "name": "localToken", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "remoteToken", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": false - }, - { - "name": "tokenId", - "internalType": "uint256", - "type": "uint256", - "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false - } - ], - "name": "ERC721BridgeFinalized" - }, - { - "type": "event", - "anonymous": false, - "inputs": [ - { - "name": "localToken", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "remoteToken", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "from", - "internalType": "address", - "type": "address", - "indexed": true - }, - { - "name": "to", - "internalType": "address", - "type": "address", - "indexed": false - }, - { - "name": "tokenId", - "internalType": "uint256", - "type": "uint256", - "indexed": false - }, - { - "name": "extraData", - "internalType": "bytes", - "type": "bytes", - "indexed": false - } - ], - "name": "ERC721BridgeInitiated" - }, - { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [ - { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_remoteToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_tokenId", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" - } - ], - "name": "bridgeERC721", - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [ - { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_remoteToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_to", - "internalType": "address", - "type": "address" - }, - { - "name": "_tokenId", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_minGasLimit", - "internalType": "uint32", - "type": "uint32" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" - } - ], - "name": "bridgeERC721To", - "outputs": [] - }, - { - "stateMutability": "nonpayable", - "type": "function", - "inputs": [ - { - "name": "_localToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_remoteToken", - "internalType": "address", - "type": "address" - }, - { - "name": "_from", - "internalType": "address", - "type": "address" - }, - { - "name": "_to", - "internalType": "address", - "type": "address" - }, - { - "name": "_tokenId", - "internalType": "uint256", - "type": "uint256" - }, - { - "name": "_extraData", - "internalType": "bytes", - "type": "bytes" - } - ], - "name": "finalizeBridgeERC721", - "outputs": [] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "messenger", - "outputs": [ - { - "name": "", - "internalType": "contract CrossDomainMessenger", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "otherBridge", - "outputs": [ - { - "name": "", - "internalType": "address", - "type": "address" - } - ] - }, - { - "stateMutability": "view", - "type": "function", - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "internalType": "string", - "type": "string" - } - ] - } - ], "L2StandardBridge": [ { "stateMutability": "nonpayable", diff --git a/packages/contracts-ts/addresses.json b/packages/contracts-ts/addresses.json index 7531520892f4..bc9056510c60 100644 --- a/packages/contracts-ts/addresses.json +++ b/packages/contracts-ts/addresses.json @@ -3,6 +3,39 @@ "1": "0xdE1FCfB0851916CA5101820A69b13a4E276bd81F", "5": "0xa6f73589243a6A7a9023b1Fa0651b1d89c177111" }, + "AssetReceiver": { + "1": "0x15DdA60616Ffca20371ED1659dBB78E888f65556", + "10": "0x15DdA60616Ffca20371ED1659dBB78E888f65556" + }, + "CheckBalanceHigh": { + "1": "0x7eC64a8a591bFf829ff6C8be76074D540ACb813F", + "5": "0x7eC64a8a591bFf829ff6C8be76074D540ACb813F", + "420": "0x5d7103853f12109A7d27F118e54BbC654ad847E9" + }, + "CheckBalanceLow": { + "1": "0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640", + "5": "0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640", + "420": "0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474" + }, + "CheckGelatoLow": { + "1": "0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa", + "5": "0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa", + "420": "0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862" + }, + "CheckTrue": { + "1": "0x5c741a38cb11424711231777D71689C458eE835D", + "5": "0x5c741a38cb11424711231777D71689C458eE835D", + "420": "0x47443D0C184e022F19BD1578F5bca6B8a9F58E32" + }, + "Drippie": { + "1": "0x44b3A2a040057eBafC601A78647e805fd58B1f50" + }, + "Drippie_goerli": { + "5": "0x44b3A2a040057eBafC601A78647e805fd58B1f50" + }, + "Drippie_optimism-goerli": { + "420": "0x8D8d533C16D23847EB04EEB0925be8900Dd3af86" + }, "L1CrossDomainMessenger": { "1": "0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1", "5": "0x5086d1eEF304eb5284A0f6720f79403b4e9bE294" @@ -46,6 +79,17 @@ "SystemDictator_goerli": { "5": "0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971" }, + "TeleportrWithdrawer": { + "1": "0x78A25524D90E3D0596558fb43789bD800a5c3007" + }, + "AttestationStation": { + "10": "0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77", + "420": "0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77" + }, + "L2ERC721Bridge": { + "10": "0x4200000000000000000000000000000000000014", + "420": "0x4200000000000000000000000000000000000014" + }, "MintManager": { "10": "0x5C4e7Ba1E219E47948e6e3F55019A647bA501005", "420": "0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76" @@ -56,6 +100,18 @@ "OptimismMintableERC721Factory_optimism-goerli": { "420": "0x4200000000000000000000000000000000000017" }, + "Optimist": { + "10": "0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5", + "420": "0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5" + }, + "OptimistAllowlist": { + "10": "0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180", + "420": "0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180" + }, + "OptimistInviter": { + "10": "0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929", + "420": "0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929" + }, "BaseFeeVault": { "420": "0x4200000000000000000000000000000000000019" }, @@ -71,9 +127,6 @@ "L2CrossDomainMessenger": { "420": "0x4200000000000000000000000000000000000007" }, - "L2ERC721Bridge": { - "420": "0x4200000000000000000000000000000000000014" - }, "L2StandardBridge": { "420": "0x4200000000000000000000000000000000000010" }, diff --git a/packages/contracts-ts/package.json b/packages/contracts-ts/package.json index 2a4bd487dd8c..2bb1e31f5335 100644 --- a/packages/contracts-ts/package.json +++ b/packages/contracts-ts/package.json @@ -36,7 +36,7 @@ ], "scripts": { "build": "tsup", - "generate": "nx build @eth-optimism/contracts-bedrock && wagmi generate && pnpm build && pnpm lint:fix", + "generate": "wagmi generate && pnpm build && pnpm lint:fix", "generate:check": "pnpm generate && git diff --exit-code ./addresses.json && git diff --exit-code ./abis.json", "lint": "prettier --check .", "lint:fix": "prettier --write .", diff --git a/packages/contracts-ts/src/actions.ts b/packages/contracts-ts/src/actions.ts index e0841f6f1879..4a1ffb5e9cb2 100644 --- a/packages/contracts-ts/src/actions.ts +++ b/packages/contracts-ts/src/actions.ts @@ -1,4 +1,4 @@ -// Generated by @wagmi/cli@1.3.0 on 7/13/2023 at 5:05:37 PM +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:40:03 PM import { getContract, GetContractArgs, @@ -125,1634 +125,1755 @@ export const addressManagerConfig = { } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1CrossDomainMessenger +// AssetReceiver ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) */ -export const l1CrossDomainMessengerABI = [ +export const assetReceiverABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [ - { - name: '_portal', - internalType: 'contract OptimismPortal', - type: 'address', - }, - ], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'newOwner', + internalType: 'address', + type: 'address', indexed: true, }, ], - name: 'FailedRelayedMessage', + name: 'OwnerUpdated', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'Initialized', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', indexed: true, }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'RelayedMessage', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'target', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'sender', + name: 'recipient', internalType: 'address', type: 'address', - indexed: false, - }, - { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'messageNonce', - internalType: 'uint256', - type: 'uint256', - indexed: false, + indexed: true, }, { - name: 'gasLimit', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'SentMessage', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ { - name: 'sender', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'value', + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, ], - name: 'SentMessageExtension1', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_CALLDATA_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'OTHER_MESSENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'WithdrewETH', }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'PORTAL', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RELAY_CALL_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'RELAY_CONSTANT_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_GAS_CHECK_BUFFER', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RELAY_RESERVED_GAS', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'pure', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'baseGas', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'failedMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'withdrawERC20', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'initialize', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_nonce', internalType: 'uint256', type: 'uint256' }, - { name: '_sender', internalType: 'address', type: 'address' }, - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], - name: 'relayMessage', + name: 'withdrawERC721', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'sendMessage', + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'successfulMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverAddress = { + 1: '0x15DdA60616Ffca20371ED1659dBB78E888f65556', + 10: '0x15DdA60616Ffca20371ED1659dBB78E888f65556', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverConfig = { + address: assetReceiverAddress, + abi: assetReceiverABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckBalanceHigh +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export const checkBalanceHighABI = [ { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'params', + internalType: 'struct CheckBalanceHigh.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + ], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'xDomainMessageSender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) */ -export const l1CrossDomainMessengerAddress = { - 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', - 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +export const checkBalanceHighAddress = { + 1: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 5: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 420: '0x5d7103853f12109A7d27F118e54BbC654ad847E9', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) */ -export const l1CrossDomainMessengerConfig = { - address: l1CrossDomainMessengerAddress, - abi: l1CrossDomainMessengerABI, +export const checkBalanceHighConfig = { + address: checkBalanceHighAddress, + abi: checkBalanceHighABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1ERC721Bridge +// CheckBalanceLow ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) */ -export const l1Erc721BridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeFinalized', - }, +export const checkBalanceLowABI = [ { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'params', + internalType: 'struct CheckBalanceLow.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], indexed: false, }, ], - name: 'ERC721BridgeInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - ], - name: 'deposits', + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export const checkBalanceLowAddress = { + 1: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + 5: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + 420: '0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export const checkBalanceLowConfig = { + address: checkBalanceLowAddress, + abi: checkBalanceLowABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckGelatoLow +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowABI = [ { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC721', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messenger', - outputs: [ { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', + name: 'params', + internalType: 'struct CheckGelatoLow.Params', + type: 'tuple', + components: [ + { name: 'treasury', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + ], + indexed: false, }, ], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowAddress = { + 1: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + 5: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + 420: '0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowConfig = { + address: checkGelatoLowAddress, + abi: checkGelatoLowABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckTrue +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) + */ +export const checkTrueABI = [ { - stateMutability: 'view', + stateMutability: 'pure', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) */ -export const l1Erc721BridgeAddress = { - 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', - 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +export const checkTrueAddress = { + 1: '0x5c741a38cb11424711231777D71689C458eE835D', + 5: '0x5c741a38cb11424711231777D71689C458eE835D', + 420: '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) */ -export const l1Erc721BridgeConfig = { - address: l1Erc721BridgeAddress, - abi: l1Erc721BridgeABI, +export const checkTrueConfig = { + address: checkTrueAddress, + abi: checkTrueABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1StandardBridge +// Drippie ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeABI = [ +export const drippieABI = [ { stateMutability: 'nonpayable', type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ - { name: '_messenger', internalType: 'address payable', type: 'address' }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, ], + name: 'DripCreated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'remoteToken', + name: 'executor', internalType: 'address', type: 'address', - indexed: true, + indexed: false, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', + name: 'timestamp', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20BridgeFinalized', + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'remoteToken', + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, + ], + name: 'DripStatusUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20BridgeInitiated', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'l2Token', + name: 'recipient', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, ], - name: 'ERC20DepositInitiated', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'l2Token', + name: 'recipient', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'ERC20WithdrawalFinalized', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, }, - ], - name: 'ETHBridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ETHBridgeInitiated', + name: 'WithdrewETH', }, { - type: 'event', - anonymous: false, + stateMutability: 'payable', + type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'ETHDepositInitiated', }, { - type: 'event', - anonymous: false, + stateMutability: 'payable', + type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'ETHWithdrawalFinalized', }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, ], - name: 'bridgeERC20', + name: 'create', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20To', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], - name: 'bridgeETH', - outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETHTo', - outputs: [], + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositERC20', - outputs: [], + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositERC20To', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, ], - name: 'depositETH', + name: 'status', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'depositETHTo', + name: 'withdrawERC20', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - ], - name: 'deposits', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeBridgeERC20', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], - name: 'finalizeBridgeETH', + name: 'withdrawERC721', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address payable', type: 'address' }, { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeERC20Withdrawal', + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeETHWithdrawal', + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l2TokenBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeAddress = { - 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', - 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +export const drippieAddress = { + 1: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeConfig = { - address: l1StandardBridgeAddress, - abi: l1StandardBridgeABI, +export const drippieConfig = { + address: drippieAddress, + abi: drippieABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2OutputOracle +// Drippie_goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleABI = [ +export const drippieGoerliABI = [ { stateMutability: 'nonpayable', type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ - { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, - { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, }, - { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, - { name: '_proposer', internalType: 'address', type: 'address' }, - { name: '_challenger', internalType: 'address', type: 'address' }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: '_finalizationPeriodSeconds', + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, + ], + name: 'DripCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'executor', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'timestamp', internalType: 'uint256', type: 'uint256', + indexed: false, }, ], + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, ], - name: 'Initialized', + name: 'DripStatusUpdated', }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'outputRoot', - internalType: 'bytes32', - type: 'bytes32', + name: 'newOwner', + internalType: 'address', + type: 'address', indexed: true, }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, { - name: 'l2OutputIndex', + name: 'amount', internalType: 'uint256', type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'l2BlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'recipient', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'l1Timestamp', + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, ], - name: 'OutputProposed', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'prevNextOutputIndex', - internalType: 'uint256', - type: 'uint256', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'newNextOutputIndex', - internalType: 'uint256', - type: 'uint256', + name: 'recipient', + internalType: 'address', + type: 'address', indexed: true, }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'OutputsDeleted', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'CHALLENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'FINALIZATION_PERIOD_SECONDS', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'L2_BLOCK_TIME', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PROPOSER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'WithdrewERC721', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'SUBMISSION_INTERVAL', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'computeL2Timestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'deleteL2Outputs', - outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2Output', - outputs: [ + { name: '_name', internalType: 'string', type: 'string' }, { - name: '', - internalType: 'struct Types.OutputProposal', + name: '_config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, ], + name: 'create', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2OutputAfter', + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', outputs: [ { - name: '', - internalType: 'struct Types.OutputProposal', + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2OutputIndexAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, - ], - name: 'initialize', - outputs: [], + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'latestBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'latestOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'nextBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + ], + name: 'status', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'nextOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, ], - name: 'proposeL2Output', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'startingBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'startingTimestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleAddress = { - 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', - 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +export const drippieGoerliAddress = { + 5: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleConfig = { - address: l2OutputOracleAddress, - abi: l2OutputOracleABI, +export const drippieGoerliConfig = { + address: drippieGoerliAddress, + abi: drippieGoerliABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC20Factory +// Drippie_optimism-goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismMintableErc20FactoryABI = [ +export const drippieOptimismGoerliABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'deployer', - internalType: 'address', - type: 'address', + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], indexed: false, }, ], - name: 'OptimismMintableERC20Created', + name: 'DripCreated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'remoteToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'localToken', + name: 'executor', internalType: 'address', type: 'address', - indexed: true, - }, - ], - name: 'StandardL2TokenCreated', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, - ], - name: 'createOptimismMintableERC20', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, - ], - name: 'createStandardL2Token', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, -] as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) - */ -export const optimismMintableErc20FactoryAddress = { - 1: '0x4200000000000000000000000000000000000012', - 5: '0x4200000000000000000000000000000000000012', - 420: '0x4200000000000000000000000000000000000012', -} as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) - */ -export const optimismMintableErc20FactoryConfig = { - address: optimismMintableErc20FactoryAddress, - abi: optimismMintableErc20FactoryABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismPortal -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) - */ -export const optimismPortalABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_l2Oracle', - internalType: 'contract L2OutputOracle', - type: 'address', + indexed: false, }, - { name: '_guardian', internalType: 'address', type: 'address' }, - { name: '_paused', internalType: 'bool', type: 'bool' }, { - name: '_config', - internalType: 'contract SystemConfig', - type: 'address', + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, ], - name: 'Initialized', + name: 'DripStatusUpdated', }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'account', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Paused', + name: 'OwnerUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'version', + name: 'amount', internalType: 'uint256', type: 'uint256', - indexed: true, - }, - { - name: 'opaqueData', - internalType: 'bytes', - type: 'bytes', indexed: false, }, ], - name: 'TransactionDeposited', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'account', + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', internalType: 'address', type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, ], - name: 'Unpaused', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'WithdrawalFinalized', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'WithdrawalProven', + name: 'WithdrewETH', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'GUARDIAN', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'L2_ORACLE', - outputs: [ - { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'SYSTEM_CONFIG', + name: 'CALL', outputs: [ - { name: '', internalType: 'contract SystemConfig', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], }, { stateMutability: 'payable', type: 'function', inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_target', internalType: 'address', type: 'address' }, { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'depositTransaction', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [], - name: 'donateETH', - outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', + name: '_config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, ], - name: 'finalizeWithdrawalTransaction', + name: 'create', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'finalizedWithdrawals', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], - name: 'initialize', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], - name: 'isOutputFinalized', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l2Sender', + name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'pure', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'params', - outputs: [ - { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, - { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, - { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, ], + name: 'status', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'pause', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'paused', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', - type: 'tuple', - components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - }, - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - { - name: '_outputRootProof', - internalType: 'struct Types.OutputRootProof', - type: 'tuple', - components: [ - { name: 'version', internalType: 'bytes32', type: 'bytes32' }, - { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'messagePasserStorageRoot', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, - ], - }, - { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, ], - name: 'proveWithdrawalTransaction', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'provenWithdrawals', - outputs: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], + name: 'withdrawERC721', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'unpause', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismPortalAddress = { - 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', - 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +export const drippieOptimismGoerliAddress = { + 420: '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismPortalConfig = { - address: optimismPortalAddress, - abi: optimismPortalABI, +export const drippieOptimismGoerliConfig = { + address: drippieOptimismGoerliAddress, + abi: drippieOptimismGoerliABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PortalSender +// L1CrossDomainMessenger ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const portalSenderABI = [ +export const l1CrossDomainMessengerABI = [ { stateMutability: 'nonpayable', type: 'constructor', @@ -1765,288 +1886,274 @@ export const portalSenderABI = [ ], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PORTAL', - outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, ], + name: 'FailedRelayedMessage', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'donate', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, -] as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) - */ -export const portalSenderAddress = { - 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', - 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', -} as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) - */ -export const portalSenderConfig = { - address: portalSenderAddress, - abi: portalSenderABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// ProxyAdmin -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) - */ -export const proxyAdminABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'target', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'sender', internalType: 'address', type: 'address', - indexed: true, + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], - name: 'OwnershipTransferred', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'addressManager', - outputs: [ - { name: '', internalType: 'contract AddressManager', type: 'address' }, - ], + name: 'SentMessage', }, { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_newAdmin', internalType: 'address', type: 'address' }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'changeProxyAdmin', - outputs: [], + name: 'SentMessageExtension1', }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - ], - name: 'getProxyAdmin', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], - name: 'getProxyImplementation', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'implementationName', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'isUpgrading', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'OTHER_MESSENGER', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'proxyType', + inputs: [], + name: 'PORTAL', outputs: [ - { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_address', internalType: 'address', type: 'address' }, - ], - name: 'setAddress', - outputs: [], + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { - name: '_address', - internalType: 'contract AddressManager', - type: 'address', - }, - ], - name: 'setAddressManager', - outputs: [], + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - ], - name: 'setImplementationName', - outputs: [], + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'pure', type: 'function', inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { - name: '_type', - internalType: 'enum ProxyAdmin.ProxyType', - type: 'uint8', - }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, ], - name: 'setProxyType', - outputs: [], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], - name: 'setUpgrading', - outputs: [], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'initialize', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, ], - name: 'upgrade', + name: 'relayMessage', outputs: [], }, { stateMutability: 'payable', type: 'function', inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, ], - name: 'upgradeAndCall', + name: 'sendMessage', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const proxyAdminAddress = { - 1: '0x4200000000000000000000000000000000000018', - 5: '0x4200000000000000000000000000000000000018', +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const proxyAdminConfig = { - address: proxyAdminAddress, - abi: proxyAdminABI, +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemConfig +// L1ERC721Bridge ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigABI = [ +export const l1Erc721BridgeABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, ], }, { @@ -2054,244 +2161,137 @@ export const systemConfigABI = [ anonymous: false, inputs: [ { - name: 'version', - internalType: 'uint256', - type: 'uint256', + name: 'localToken', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'updateType', - internalType: 'enum SystemConfig.UpdateType', - type: 'uint8', + name: 'remoteToken', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, - ], - name: 'ConfigUpdate', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'Initialized', + name: 'ERC721BridgeFinalized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'ERC721BridgeInitiated', }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'UNSAFE_BLOCK_SIGNER_SLOT', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'batcherHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'gasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'initialize', + name: 'finalizeBridgeERC721', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'overhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'resourceConfig', - outputs: [ - { - name: '', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'scalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'setBatcherHash', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - ], - name: 'setGasConfig', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], - name: 'setGasLimit', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, - ], - name: 'setResourceConfig', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - ], - name: 'setUnsafeBlockSigner', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'unsafeBlockSigner', + name: 'otherBridge', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { @@ -2304,619 +2304,491 @@ export const systemConfigABI = [ ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigAddress = { - 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', - 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigConfig = { - address: systemConfigAddress, - abi: systemConfigABI, +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemDictator +// L1StandardBridge ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, +export const l1StandardBridgeABI = [ { - type: 'event', - anonymous: false, + stateMutability: 'nonpayable', + type: 'constructor', inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: '_messenger', internalType: 'address payable', type: 'address' }, ], - name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'ERC20BridgeFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'config', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, }, ], + name: 'ERC20WithdrawalFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'exit1', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'exited', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'finalize', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], - }, - ], - }, + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'initialize', + name: 'bridgeERC20To', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'l2OutputOracleDynamicConfig', - outputs: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], + name: 'bridgeETH', + outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'oldL1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'optimismPortalDynamicConfig', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'phase1', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'phase2', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'renounceOwnership', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'step1', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [], - name: 'step2', - outputs: [], + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step3', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'step4', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step5', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], - }, + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ { - name: '_optimismPortalDynamicConfig', - internalType: 'bool', - type: 'bool', + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', }, ], - name: 'updateDynamicConfig', - outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorAddress = { - 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', } as const /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorConfig = { - address: systemDictatorAddress, - abi: systemDictatorABI, +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemDictator_goerli +// L2OutputOracle ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export const systemDictatorGoerliABI = [ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, { type: 'event', anonymous: false, @@ -2930,677 +2802,660 @@ export const systemDictatorGoerliABI = [ anonymous: false, inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, { - name: 'newOwner', - internalType: 'address', - type: 'address', + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', indexed: true, }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'config', - outputs: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', + name: '', + internalType: 'struct Types.OutputProposal', type: 'tuple', components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, ], }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', + name: '', + internalType: 'struct Types.OutputProposal', type: 'tuple', components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, ], }, ], }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'exit1', - outputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'finalize', + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - ], - }, - ], + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, }, ], - name: 'initialize', - outputs: [], + name: 'OptimismMintableERC20Created', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l2OutputOracleDynamicConfig', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, }, ], + name: 'StandardL2TokenCreated', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'oldL1CrossDomainMessenger', + name: 'BRIDGE', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'owner', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'step1', - outputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ { stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step2', - outputs: [], + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step3', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step4', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step5', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step6', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, }, ], - name: 'updateL2OutputOracleDynamicConfig', - outputs: [], + name: 'Paused', }, -] as const - -/** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) - */ -export const systemDictatorGoerliAddress = { - 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', -} as const - -/** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) - */ -export const systemDictatorGoerliConfig = { - address: systemDictatorGoerliAddress, - abi: systemDictatorGoerliABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// MintManager -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', + type: 'event', + anonymous: false, inputs: [ - { name: '_upgrader', internalType: 'address', type: 'address' }, - { name: '_governanceToken', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], + name: 'TransactionDeposited', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'account', internalType: 'address', type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'newOwner', - internalType: 'address', - type: 'address', + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, ], - name: 'OwnershipTransferred', + name: 'WithdrawalProven', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'DENOMINATOR', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_CAP', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_PERIOD', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'governanceToken', - outputs: [ - { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_account', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, ], - name: 'mint', + name: 'finalizeWithdrawalTransaction', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'mintPermittedAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'l2Sender', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'pause', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_newMintManager', internalType: 'address', type: 'address' }, - ], - name: 'upgrade', - outputs: [], - }, -] as const - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerAddress = { - 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', - 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', -} as const - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerConfig = { - address: mintManagerAddress, - abi: mintManagerABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC721Factory -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) - */ -export const optimismMintableErc721FactoryABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, { - name: 'deployer', - internalType: 'address', - type: 'address', - indexed: false, + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, ], - name: 'OptimismMintableERC721Created', + name: 'proveWithdrawalTransaction', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'bridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'remoteChainId', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'unpause', + outputs: [], }, { stateMutability: 'view', @@ -3609,509 +3464,329 @@ export const optimismMintableErc721FactoryABI = [ name: 'version', outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export const optimismMintableErc721FactoryAddress = { - 10: '0x4200000000000000000000000000000000000017', +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', } as const /** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export const optimismMintableErc721FactoryConfig = { - address: optimismMintableErc721FactoryAddress, - abi: optimismMintableErc721FactoryABI, +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC721Factory_optimism-goerli +// PortalSender ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliABI = [ +export const portalSenderABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'deployer', - internalType: 'address', + name: '_portal', + internalType: 'contract OptimismPortal', type: 'address', - indexed: false, }, ], - name: 'OptimismMintableERC721Created', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'REMOTE_CHAIN_ID', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'donate', + outputs: [], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliAddress = { - 420: '0x4200000000000000000000000000000000000017', +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliConfig = { - address: optimismMintableErc721FactoryOptimismGoerliAddress, - abi: optimismMintableErc721FactoryOptimismGoerliABI, +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// BaseFeeVault +// ProxyAdmin ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const baseFeeVaultABI = [ +export const proxyAdminABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'from', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Withdrawal', + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) - */ -export const baseFeeVaultAddress = { - 420: '0x4200000000000000000000000000000000000019', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) - */ -export const baseFeeVaultConfig = { - address: baseFeeVaultAddress, - abi: baseFeeVaultABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// GasPriceOracle -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'baseFee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'pure', - type: 'function', - inputs: [], - name: 'decimals', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'gasPrice', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], - name: 'getL1Fee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], - name: 'getL1GasUsed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l1BaseFee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'overhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'scalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleAddress = { - 420: '0x420000000000000000000000000000000000000F', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleConfig = { - address: gasPriceOracleAddress, - abi: gasPriceOracleABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1Block -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) - */ -export const l1BlockABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'DEPOSITOR_ACCOUNT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'basefee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'renounceOwnership', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'batcherHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'hash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1FeeOverhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1FeeScalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'number', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'sequenceNumber', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_number', internalType: 'uint64', type: 'uint64' }, - { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, - { name: '_basefee', internalType: 'uint256', type: 'uint256' }, - { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, - { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, ], - name: 'setL1BlockValues', + name: 'upgrade', outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'timestamp', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const l1BlockAddress = { - 420: '0x4200000000000000000000000000000000000015', +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const l1BlockConfig = { - address: l1BlockAddress, - abi: l1BlockABI, +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1FeeVault +// SystemConfig ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l1FeeVaultABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: false, - }, - ], - name: 'Withdrawal', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) - */ -export const l1FeeVaultAddress = { - 420: '0x420000000000000000000000000000000000001A', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) - */ -export const l1FeeVaultConfig = { - address: l1FeeVaultAddress, - abi: l1FeeVaultABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2CrossDomainMessenger -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) - */ -export const l2CrossDomainMessengerABI = [ +export const systemConfigABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, { - name: '_l1CrossDomainMessenger', - internalType: 'address', - type: 'address', + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], }, ], }, @@ -4120,13 +3795,20 @@ export const l2CrossDomainMessengerABI = [ anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'version', + internalType: 'uint256', + type: 'uint256', indexed: true, }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'FailedRelayedMessage', + name: 'ConfigUpdate', }, { type: 'event', @@ -4141,1121 +3823,5663 @@ export const l2CrossDomainMessengerABI = [ anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - ], - name: 'RelayedMessage', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'target', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: false, - }, - { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'messageNonce', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'gasLimit', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - ], - name: 'SentMessage', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'sender', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, ], - name: 'SentMessageExtension1', + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_GAS_CALLDATA_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + name: 'gasLimit', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'OTHER_MESSENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_CALL_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_CONSTANT_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'RELAY_GAS_CHECK_BUFFER', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'renounceOwnership', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_RESERVED_GAS', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'pure', - type: 'function', - inputs: [ - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - ], - name: 'baseGas', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'failedMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'initialize', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_nonce', internalType: 'uint256', type: 'uint256' }, - { name: '_sender', internalType: 'address', type: 'address' }, - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, ], - name: 'relayMessage', + name: 'setResourceConfig', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, ], - name: 'sendMessage', + name: 'setUnsafeBlockSigner', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'successfulMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'xDomainMessageSender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l2CrossDomainMessengerAddress = { - 420: '0x4200000000000000000000000000000000000007', +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l2CrossDomainMessengerConfig = { - address: l2CrossDomainMessengerAddress, - abi: l2CrossDomainMessengerABI, +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2ERC721Bridge +// SystemDictator ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2Erc721BridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, +export const systemDictatorABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { type: 'event', anonymous: false, inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, ], - name: 'ERC721BridgeFinalized', + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'remoteToken', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeBridgeERC721', - outputs: [], + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export const l2Erc721BridgeAddress = { - 420: '0x4200000000000000000000000000000000000014', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export const l2Erc721BridgeConfig = { - address: l2Erc721BridgeAddress, - abi: l2Erc721BridgeABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2StandardBridge -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_otherBridge', - internalType: 'address payable', - type: 'address', - }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ + name: 'config', + outputs: [ { - name: 'l1Token', - internalType: 'address', - type: 'address', - indexed: true, + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], }, { - name: 'l2Token', - internalType: 'address', - type: 'address', - indexed: true, + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], }, ], - name: 'DepositFinalized', }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC20BridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC20BridgeInitiated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ETHBridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ETHBridgeInitiated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'l1Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'l2Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'WithdrawalInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20To', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETH', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETHTo', - outputs: [], + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - ], - name: 'deposits', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC20', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeETH', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeDeposit', + inputs: [], + name: 'exit1', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l1TokenBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], + name: 'finalize', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'withdraw', - outputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'withdrawTo', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeAddress = { - 420: '0x4200000000000000000000000000000000000010', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeConfig = { - address: l2StandardBridgeAddress, - abi: l2StandardBridgeABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2ToL1MessagePasser -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) - */ -export const l2ToL1MessagePasserABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'nonce', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'target', - internalType: 'address', - type: 'address', - indexed: true, + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ { - name: 'value', + name: 'l2OutputOracleStartingBlockNumber', internalType: 'uint256', type: 'uint256', - indexed: false, }, { - name: 'gasLimit', + name: 'l2OutputOracleStartingTimestamp', internalType: 'uint256', type: 'uint256', - indexed: false, - }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: false, }, ], - name: 'MessagePassed', }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - ], - name: 'WithdrawerBalanceBurnt', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + name: 'optimismPortalDynamicConfig', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'burn', - outputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, - ], - name: 'initiateWithdrawal', + inputs: [], + name: 'phase1', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'phase2', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'sentMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'renounceOwnership', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', + }, + ], + name: 'updateDynamicConfig', + outputs: [], }, - { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2ToL1MessagePasserAddress = { - 420: '0x4200000000000000000000000000000000000016', +export const systemDictatorAddress = { + 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2ToL1MessagePasserConfig = { - address: l2ToL1MessagePasserAddress, - abi: l2ToL1MessagePasserABI, +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SequencerFeeVault +// SystemDictator_goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export const sequencerFeeVaultABI = [ +export const systemDictatorGoerliABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'from', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Withdrawal', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l1FeeWallet', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateL2OutputOracleDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliAddress = { + 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TeleportrWithdrawer +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC20', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'data', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'recipient', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'setData', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'setRecipient', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_teleportr', internalType: 'address', type: 'address' }], + name: 'setTeleportr', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'teleportr', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdrawFromTeleportr', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerAddress = { + 1: '0x78A25524D90E3D0596558fb43789bD800a5c3007', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerConfig = { + address: teleportrWithdrawerAddress, + abi: teleportrWithdrawerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AttestationStation +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'about', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'key', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'AttestationCreated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_attestations', + internalType: 'struct AttestationStation.AttestationData[]', + type: 'tuple[]', + components: [ + { name: 'about', internalType: 'address', type: 'address' }, + { name: 'key', internalType: 'bytes32', type: 'bytes32' }, + { name: 'val', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'attest', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_about', internalType: 'address', type: 'address' }, + { name: '_key', internalType: 'bytes32', type: 'bytes32' }, + { name: '_val', internalType: 'bytes', type: 'bytes' }, + ], + name: 'attest', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'attestations', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationAddress = { + 10: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', + 420: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationConfig = { + address: attestationStationAddress, + abi: attestationStationABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 10: '0x4200000000000000000000000000000000000014', + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryAddress = { + 10: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliAddress = { + 420: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Optimist +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + { name: '_baseURIAttestor', internalType: 'address', type: 'address' }, + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { + name: '_optimistAllowlist', + internalType: 'contract OptimistAllowlist', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BASE_URI_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BASE_URI_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_ALLOWLIST', + outputs: [ + { name: '', internalType: 'contract OptimistAllowlist', type: 'address' }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'isOnAllowList', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + name: 'tokenIdOfAddress', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistAddress = { + 10: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', + 420: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistConfig = { + address: optimistAddress, + abi: optimistABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimistAllowlist +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { name: '_allowlistAttestor', internalType: 'address', type: 'address' }, + { + name: '_coinbaseQuestAttestor', + internalType: 'address', + type: 'address', + }, + { name: '_optimistInviter', internalType: 'address', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ALLOWLIST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'COINBASE_QUEST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_INVITER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_claimer', internalType: 'address', type: 'address' }], + name: 'isAllowedToMint', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistAddress = { + 10: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', + 420: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistConfig = { + address: optimistAllowlistAddress, + abi: optimistAllowlistABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimistInviter +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_inviteGranter', internalType: 'address', type: 'address' }, + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'issuer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'claimer', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'InviteClaimed', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CAN_INVITE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CLAIMABLE_INVITE_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EIP712_VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'INVITE_GRANTER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_COMMITMENT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_claimer', internalType: 'address', type: 'address' }, + { + name: '_claimableInvite', + internalType: 'struct OptimistInviter.ClaimableInvite', + type: 'tuple', + components: [ + { name: 'issuer', internalType: 'address', type: 'address' }, + { name: 'nonce', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'claimInvite', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_commitment', internalType: 'bytes32', type: 'bytes32' }], + name: 'commitInvite', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'commitmentTimestamps', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'inviteCounts', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_accounts', internalType: 'address[]', type: 'address[]' }, + { name: '_inviteCount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setInviteCounts', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'usedNonces', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterAddress = { + 10: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', + 420: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterConfig = { + address: optimistInviterAddress, + abi: optimistInviterABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Core +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function getAddressManager( + config: Omit & { + chainId?: keyof typeof addressManagerAddress + } +) { + return getContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function readAddressManager< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof addressManagerAddress + } +) { + return readContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function writeAddressManager< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof addressManagerAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof addressManagerAddress + }) +) { + return writeContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function prepareWriteAddressManager< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } +) { + return prepareWriteContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function watchAddressManagerEvent< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function getAssetReceiver( + config: Omit & { + chainId?: keyof typeof assetReceiverAddress + } +) { + return getContract({ + abi: assetReceiverABI, + address: + assetReceiverAddress[config.chainId as keyof typeof assetReceiverAddress], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function readAssetReceiver< + TAbi extends readonly unknown[] = typeof assetReceiverABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof assetReceiverAddress + } +) { + return readContract({ + abi: assetReceiverABI, + address: + assetReceiverAddress[config.chainId as keyof typeof assetReceiverAddress], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function writeAssetReceiver< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof assetReceiverAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof assetReceiverAddress + }) +) { + return writeContract({ + abi: assetReceiverABI, + address: + assetReceiverAddress[config.chainId as keyof typeof assetReceiverAddress], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function prepareWriteAssetReceiver< + TAbi extends readonly unknown[] = typeof assetReceiverABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof assetReceiverAddress } +) { + return prepareWriteContract({ + abi: assetReceiverABI, + address: + assetReceiverAddress[config.chainId as keyof typeof assetReceiverAddress], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function watchAssetReceiverEvent< + TAbi extends readonly unknown[] = typeof assetReceiverABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof assetReceiverAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: assetReceiverABI, + address: + assetReceiverAddress[ + config.chainId as keyof typeof assetReceiverAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link checkBalanceHighABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export function getCheckBalanceHigh( + config: Omit & { + chainId?: keyof typeof checkBalanceHighAddress + } +) { + return getContract({ + abi: checkBalanceHighABI, + address: + checkBalanceHighAddress[ + config.chainId as keyof typeof checkBalanceHighAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link checkBalanceHighABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export function readCheckBalanceHigh< + TAbi extends readonly unknown[] = typeof checkBalanceHighABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof checkBalanceHighAddress + } +) { + return readContract({ + abi: checkBalanceHighABI, + address: + checkBalanceHighAddress[ + config.chainId as keyof typeof checkBalanceHighAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link checkBalanceHighABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export function watchCheckBalanceHighEvent< + TAbi extends readonly unknown[] = typeof checkBalanceHighABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkBalanceHighAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: checkBalanceHighABI, + address: + checkBalanceHighAddress[ + config.chainId as keyof typeof checkBalanceHighAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link checkBalanceLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export function getCheckBalanceLow( + config: Omit & { + chainId?: keyof typeof checkBalanceLowAddress + } +) { + return getContract({ + abi: checkBalanceLowABI, + address: + checkBalanceLowAddress[ + config.chainId as keyof typeof checkBalanceLowAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link checkBalanceLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export function readCheckBalanceLow< + TAbi extends readonly unknown[] = typeof checkBalanceLowABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof checkBalanceLowAddress + } +) { + return readContract({ + abi: checkBalanceLowABI, + address: + checkBalanceLowAddress[ + config.chainId as keyof typeof checkBalanceLowAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link checkBalanceLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export function watchCheckBalanceLowEvent< + TAbi extends readonly unknown[] = typeof checkBalanceLowABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkBalanceLowAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: checkBalanceLowABI, + address: + checkBalanceLowAddress[ + config.chainId as keyof typeof checkBalanceLowAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link checkGelatoLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export function getCheckGelatoLow( + config: Omit & { + chainId?: keyof typeof checkGelatoLowAddress + } +) { + return getContract({ + abi: checkGelatoLowABI, + address: + checkGelatoLowAddress[ + config.chainId as keyof typeof checkGelatoLowAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link checkGelatoLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export function readCheckGelatoLow< + TAbi extends readonly unknown[] = typeof checkGelatoLowABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof checkGelatoLowAddress + } +) { + return readContract({ + abi: checkGelatoLowABI, + address: + checkGelatoLowAddress[ + config.chainId as keyof typeof checkGelatoLowAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link checkGelatoLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export function watchCheckGelatoLowEvent< + TAbi extends readonly unknown[] = typeof checkGelatoLowABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkGelatoLowAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: checkGelatoLowABI, + address: + checkGelatoLowAddress[ + config.chainId as keyof typeof checkGelatoLowAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link checkTrueABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) + */ +export function getCheckTrue( + config: Omit & { + chainId?: keyof typeof checkTrueAddress + } +) { + return getContract({ + abi: checkTrueABI, + address: checkTrueAddress[config.chainId as keyof typeof checkTrueAddress], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link checkTrueABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) + */ +export function readCheckTrue< + TAbi extends readonly unknown[] = typeof checkTrueABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof checkTrueAddress + } +) { + return readContract({ + abi: checkTrueABI, + address: checkTrueAddress[config.chainId as keyof typeof checkTrueAddress], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function getDrippie( + config: Omit & { + chainId?: keyof typeof drippieAddress + } +) { + return getContract({ abi: drippieABI, address: drippieAddress[1], ...config }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function readDrippie< + TAbi extends readonly unknown[] = typeof drippieABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof drippieAddress + } +) { + return readContract({ + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function writeDrippie< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof drippieAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof drippieAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof drippieAddress + }) +) { + return writeContract({ + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function prepareWriteDrippie< + TAbi extends readonly unknown[] = typeof drippieABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieAddress } +) { + return prepareWriteContract({ + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function watchDrippieEvent< + TAbi extends readonly unknown[] = typeof drippieABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function getDrippieGoerli( + config: Omit & { + chainId?: keyof typeof drippieGoerliAddress + } +) { + return getContract({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function readDrippieGoerli< + TAbi extends readonly unknown[] = typeof drippieGoerliABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof drippieGoerliAddress + } +) { + return readContract({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function writeDrippieGoerli< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof drippieGoerliAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof drippieGoerliAddress + }) +) { + return writeContract({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function prepareWriteDrippieGoerli< + TAbi extends readonly unknown[] = typeof drippieGoerliABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieGoerliAddress } +) { + return prepareWriteContract({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function watchDrippieGoerliEvent< + TAbi extends readonly unknown[] = typeof drippieGoerliABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieGoerliAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function getDrippieOptimismGoerli( + config: Omit & { + chainId?: keyof typeof drippieOptimismGoerliAddress + } +) { + return getContract({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function readDrippieOptimismGoerli< + TAbi extends readonly unknown[] = typeof drippieOptimismGoerliABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof drippieOptimismGoerliAddress + } +) { + return readContract({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function writeDrippieOptimismGoerli< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof drippieOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof drippieOptimismGoerliAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof drippieOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof drippieOptimismGoerliAddress + }) +) { + return writeContract({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function prepareWriteDrippieOptimismGoerli< + TAbi extends readonly unknown[] = typeof drippieOptimismGoerliABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } +) { + return prepareWriteContract({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function watchDrippieOptimismGoerliEvent< + TAbi extends readonly unknown[] = typeof drippieOptimismGoerliABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function getL1CrossDomainMessenger( + config: Omit & { + chainId?: keyof typeof l1CrossDomainMessengerAddress + } +) { + return getContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function readL1CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1CrossDomainMessengerAddress + } +) { + return readContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function writeL1CrossDomainMessenger< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1CrossDomainMessengerAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1CrossDomainMessengerAddress + }) +) { + return writeContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function prepareWriteL1CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } +) { + return prepareWriteContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function watchL1CrossDomainMessengerEvent< + TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function getL1Erc721Bridge( + config: Omit & { + chainId?: keyof typeof l1Erc721BridgeAddress + } +) { + return getContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function readL1Erc721Bridge< + TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1Erc721BridgeAddress + } +) { + return readContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function writeL1Erc721Bridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1Erc721BridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1Erc721BridgeAddress + }) +) { + return writeContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function prepareWriteL1Erc721Bridge< + TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } +) { + return prepareWriteContract({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function watchL1Erc721BridgeEvent< + TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[ + config.chainId as keyof typeof l1Erc721BridgeAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function getL1StandardBridge( + config: Omit & { + chainId?: keyof typeof l1StandardBridgeAddress + } +) { + return getContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function readL1StandardBridge< + TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1StandardBridgeAddress + } +) { + return readContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function writeL1StandardBridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1StandardBridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1StandardBridgeAddress + }) +) { + return writeContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function prepareWriteL1StandardBridge< + TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress } +) { + return prepareWriteContract({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function watchL1StandardBridgeEvent< + TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[ + config.chainId as keyof typeof l1StandardBridgeAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function getL2OutputOracle( + config: Omit & { + chainId?: keyof typeof l2OutputOracleAddress + } +) { + return getContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + }) +} /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + * Wraps __{@link readContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export const sequencerFeeVaultAddress = { - 420: '0x4200000000000000000000000000000000000011', -} as const +export function readL2OutputOracle< + TAbi extends readonly unknown[] = typeof l2OutputOracleABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2OutputOracleAddress + } +) { + return readContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as unknown as ReadContractConfig) +} /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export const sequencerFeeVaultConfig = { - address: sequencerFeeVaultAddress, - abi: sequencerFeeVaultABI, -} as const +export function writeL2OutputOracle< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2OutputOracleAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2OutputOracleAddress + }) +) { + return writeContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as unknown as WriteContractArgs) +} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// eslintIgnore -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function prepareWriteL2OutputOracle< + TAbi extends readonly unknown[] = typeof l2OutputOracleABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } +) { + return prepareWriteContract({ + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Core -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export function watchL2OutputOracleEvent< + TAbi extends readonly unknown[] = typeof l2OutputOracleABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2OutputOracleABI, + address: + l2OutputOracleAddress[ + config.chainId as keyof typeof l2OutputOracleAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} /** - * Wraps __{@link getContract}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function getAddressManager( +export function getOptimismMintableErc20Factory( config: Omit & { - chainId?: keyof typeof addressManagerAddress + chainId?: keyof typeof optimismMintableErc20FactoryAddress } ) { return getContract({ - abi: addressManagerABI, + abi: optimismMintableErc20FactoryABI, address: - addressManagerAddress[ - config.chainId as keyof typeof addressManagerAddress + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress ], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function readAddressManager< - TAbi extends readonly unknown[] = typeof addressManagerABI, +export function readOptimismMintableErc20Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof addressManagerAddress + chainId?: keyof typeof optimismMintableErc20FactoryAddress } ) { return readContract({ - abi: addressManagerABI, + abi: optimismMintableErc20FactoryABI, address: - addressManagerAddress[ - config.chainId as keyof typeof addressManagerAddress + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress ], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function writeAddressManager< +export function writeOptimismMintableErc20Factory< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof addressManagerAddress + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof addressManagerAddress + : keyof typeof optimismMintableErc20FactoryAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof addressManagerAddress + : keyof typeof optimismMintableErc20FactoryAddress }) ) { return writeContract({ - abi: addressManagerABI, + abi: optimismMintableErc20FactoryABI, address: - addressManagerAddress[ - config.chainId as keyof typeof addressManagerAddress + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress ], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function prepareWriteAddressManager< - TAbi extends readonly unknown[] = typeof addressManagerABI, +export function prepareWriteOptimismMintableErc20Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof addressManagerAddress } + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } ) { return prepareWriteContract({ - abi: addressManagerABI, + abi: optimismMintableErc20FactoryABI, address: - addressManagerAddress[ - config.chainId as keyof typeof addressManagerAddress + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress ], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function watchAddressManagerEvent< - TAbi extends readonly unknown[] = typeof addressManagerABI, +export function watchOptimismMintableErc20FactoryEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof addressManagerAddress }, + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: addressManagerABI, + abi: optimismMintableErc20FactoryABI, address: - addressManagerAddress[ - config.chainId as keyof typeof addressManagerAddress + optimismMintableErc20FactoryAddress[ + config.chainId as keyof typeof optimismMintableErc20FactoryAddress ], ...config, } as WatchContractEventConfig, @@ -5264,144 +9488,138 @@ export function watchAddressManagerEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function getL1CrossDomainMessenger( +export function getOptimismPortal( config: Omit & { - chainId?: keyof typeof l1CrossDomainMessengerAddress + chainId?: keyof typeof optimismPortalAddress } ) { return getContract({ - abi: l1CrossDomainMessengerABI, + abi: optimismPortalABI, address: - l1CrossDomainMessengerAddress[ - config.chainId as keyof typeof l1CrossDomainMessengerAddress + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress ], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function readL1CrossDomainMessenger< - TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, +export function readOptimismPortal< + TAbi extends readonly unknown[] = typeof optimismPortalABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof l1CrossDomainMessengerAddress + chainId?: keyof typeof optimismPortalAddress } ) { return readContract({ - abi: l1CrossDomainMessengerABI, + abi: optimismPortalABI, address: - l1CrossDomainMessengerAddress[ - config.chainId as keyof typeof l1CrossDomainMessengerAddress + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress ], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function writeL1CrossDomainMessenger< +export function writeOptimismPortal< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof l1CrossDomainMessengerAddress + TChainId extends number = keyof typeof optimismPortalAddress >( config: | (Omit< - WriteContractPreparedArgs< - typeof l1CrossDomainMessengerABI, - TFunctionName - >, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l1CrossDomainMessengerAddress + : keyof typeof optimismPortalAddress }) | (Omit< - WriteContractUnpreparedArgs< - typeof l1CrossDomainMessengerABI, - TFunctionName - >, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l1CrossDomainMessengerAddress + : keyof typeof optimismPortalAddress }) ) { return writeContract({ - abi: l1CrossDomainMessengerABI, + abi: optimismPortalABI, address: - l1CrossDomainMessengerAddress[ - config.chainId as keyof typeof l1CrossDomainMessengerAddress + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress ], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function prepareWriteL1CrossDomainMessenger< - TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, +export function prepareWriteOptimismPortal< + TAbi extends readonly unknown[] = typeof optimismPortalABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } + > & { chainId?: keyof typeof optimismPortalAddress } ) { return prepareWriteContract({ - abi: l1CrossDomainMessengerABI, + abi: optimismPortalABI, address: - l1CrossDomainMessengerAddress[ - config.chainId as keyof typeof l1CrossDomainMessengerAddress + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress ], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function watchL1CrossDomainMessengerEvent< - TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, +export function watchOptimismPortalEvent< + TAbi extends readonly unknown[] = typeof optimismPortalABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress }, + > & { chainId?: keyof typeof optimismPortalAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: l1CrossDomainMessengerABI, + abi: optimismPortalABI, address: - l1CrossDomainMessengerAddress[ - config.chainId as keyof typeof l1CrossDomainMessengerAddress + optimismPortalAddress[ + config.chainId as keyof typeof optimismPortalAddress ], ...config, } as WatchContractEventConfig, @@ -5410,279 +9628,232 @@ export function watchL1CrossDomainMessengerEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link portalSenderABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function getL1Erc721Bridge( +export function getPortalSender( config: Omit & { - chainId?: keyof typeof l1Erc721BridgeAddress + chainId?: keyof typeof portalSenderAddress } ) { return getContract({ - abi: l1Erc721BridgeABI, + abi: portalSenderABI, address: - l1Erc721BridgeAddress[ - config.chainId as keyof typeof l1Erc721BridgeAddress - ], + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link portalSenderABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function readL1Erc721Bridge< - TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, +export function readPortalSender< + TAbi extends readonly unknown[] = typeof portalSenderABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof l1Erc721BridgeAddress + chainId?: keyof typeof portalSenderAddress } ) { return readContract({ - abi: l1Erc721BridgeABI, + abi: portalSenderABI, address: - l1Erc721BridgeAddress[ - config.chainId as keyof typeof l1Erc721BridgeAddress - ], + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link portalSenderABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function writeL1Erc721Bridge< +export function writePortalSender< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof l1Erc721BridgeAddress + TChainId extends number = keyof typeof portalSenderAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l1Erc721BridgeAddress + : keyof typeof portalSenderAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l1Erc721BridgeAddress + : keyof typeof portalSenderAddress }) ) { return writeContract({ - abi: l1Erc721BridgeABI, + abi: portalSenderABI, address: - l1Erc721BridgeAddress[ - config.chainId as keyof typeof l1Erc721BridgeAddress - ], + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link portalSenderABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function prepareWriteL1Erc721Bridge< - TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, +export function prepareWritePortalSender< + TAbi extends readonly unknown[] = typeof portalSenderABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } + > & { chainId?: keyof typeof portalSenderAddress } ) { return prepareWriteContract({ - abi: l1Erc721BridgeABI, + abi: portalSenderABI, address: - l1Erc721BridgeAddress[ - config.chainId as keyof typeof l1Erc721BridgeAddress - ], + portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) - */ -export function watchL1Erc721BridgeEvent< - TAbi extends readonly unknown[] = typeof l1Erc721BridgeABI, - TEventName extends string = string ->( - config: Omit< - WatchContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1Erc721BridgeAddress }, - callback: WatchContractEventCallback -) { - return watchContractEvent( - { - abi: l1Erc721BridgeABI, - address: - l1Erc721BridgeAddress[ - config.chainId as keyof typeof l1Erc721BridgeAddress - ], - ...config, - } as WatchContractEventConfig, - callback - ) -} - -/** - * Wraps __{@link getContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function getL1StandardBridge( +export function getProxyAdmin( config: Omit & { - chainId?: keyof typeof l1StandardBridgeAddress + chainId?: keyof typeof proxyAdminAddress } ) { return getContract({ - abi: l1StandardBridgeABI, + abi: proxyAdminABI, address: - l1StandardBridgeAddress[ - config.chainId as keyof typeof l1StandardBridgeAddress - ], + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function readL1StandardBridge< - TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, +export function readProxyAdmin< + TAbi extends readonly unknown[] = typeof proxyAdminABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof l1StandardBridgeAddress + chainId?: keyof typeof proxyAdminAddress } ) { return readContract({ - abi: l1StandardBridgeABI, + abi: proxyAdminABI, address: - l1StandardBridgeAddress[ - config.chainId as keyof typeof l1StandardBridgeAddress - ], + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function writeL1StandardBridge< +export function writeProxyAdmin< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof l1StandardBridgeAddress + TChainId extends number = keyof typeof proxyAdminAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l1StandardBridgeAddress + : keyof typeof proxyAdminAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l1StandardBridgeAddress + : keyof typeof proxyAdminAddress }) ) { return writeContract({ - abi: l1StandardBridgeABI, + abi: proxyAdminABI, address: - l1StandardBridgeAddress[ - config.chainId as keyof typeof l1StandardBridgeAddress - ], + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function prepareWriteL1StandardBridge< - TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, +export function prepareWriteProxyAdmin< + TAbi extends readonly unknown[] = typeof proxyAdminABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l1StandardBridgeAddress } + > & { chainId?: keyof typeof proxyAdminAddress } ) { return prepareWriteContract({ - abi: l1StandardBridgeABI, + abi: proxyAdminABI, address: - l1StandardBridgeAddress[ - config.chainId as keyof typeof l1StandardBridgeAddress - ], + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function watchL1StandardBridgeEvent< - TAbi extends readonly unknown[] = typeof l1StandardBridgeABI, +export function watchProxyAdminEvent< + TAbi extends readonly unknown[] = typeof proxyAdminABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l1StandardBridgeAddress }, + > & { chainId?: keyof typeof proxyAdminAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: l1StandardBridgeABI, + abi: proxyAdminABI, address: - l1StandardBridgeAddress[ - config.chainId as keyof typeof l1StandardBridgeAddress - ], + proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], ...config, } as WatchContractEventConfig, callback @@ -5690,139 +9861,129 @@ export function watchL1StandardBridgeEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function getL2OutputOracle( +export function getSystemConfig( config: Omit & { - chainId?: keyof typeof l2OutputOracleAddress + chainId?: keyof typeof systemConfigAddress } ) { return getContract({ - abi: l2OutputOracleABI, + abi: systemConfigABI, address: - l2OutputOracleAddress[ - config.chainId as keyof typeof l2OutputOracleAddress - ], + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function readL2OutputOracle< - TAbi extends readonly unknown[] = typeof l2OutputOracleABI, +export function readSystemConfig< + TAbi extends readonly unknown[] = typeof systemConfigABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof l2OutputOracleAddress + chainId?: keyof typeof systemConfigAddress } ) { return readContract({ - abi: l2OutputOracleABI, + abi: systemConfigABI, address: - l2OutputOracleAddress[ - config.chainId as keyof typeof l2OutputOracleAddress - ], + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function writeL2OutputOracle< +export function writeSystemConfig< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof l2OutputOracleAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l2OutputOracleAddress + : keyof typeof systemConfigAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof l2OutputOracleAddress + : keyof typeof systemConfigAddress }) ) { return writeContract({ - abi: l2OutputOracleABI, + abi: systemConfigABI, address: - l2OutputOracleAddress[ - config.chainId as keyof typeof l2OutputOracleAddress - ], + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function prepareWriteL2OutputOracle< - TAbi extends readonly unknown[] = typeof l2OutputOracleABI, +export function prepareWriteSystemConfig< + TAbi extends readonly unknown[] = typeof systemConfigABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l2OutputOracleAddress } + > & { chainId?: keyof typeof systemConfigAddress } ) { return prepareWriteContract({ - abi: l2OutputOracleABI, + abi: systemConfigABI, address: - l2OutputOracleAddress[ - config.chainId as keyof typeof l2OutputOracleAddress - ], + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function watchL2OutputOracleEvent< - TAbi extends readonly unknown[] = typeof l2OutputOracleABI, +export function watchSystemConfigEvent< + TAbi extends readonly unknown[] = typeof systemConfigABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l2OutputOracleAddress }, + > & { chainId?: keyof typeof systemConfigAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: l2OutputOracleABI, + abi: systemConfigABI, address: - l2OutputOracleAddress[ - config.chainId as keyof typeof l2OutputOracleAddress - ], + systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], ...config, } as WatchContractEventConfig, callback @@ -5830,150 +9991,119 @@ export function watchL2OutputOracleEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function getOptimismMintableErc20Factory( +export function getSystemDictator( config: Omit & { - chainId?: keyof typeof optimismMintableErc20FactoryAddress + chainId?: keyof typeof systemDictatorAddress } ) { return getContract({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - config.chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function readOptimismMintableErc20Factory< - TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, +export function readSystemDictator< + TAbi extends readonly unknown[] = typeof systemDictatorABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof optimismMintableErc20FactoryAddress + chainId?: keyof typeof systemDictatorAddress } ) { return readContract({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - config.chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function writeOptimismMintableErc20Factory< +export function writeSystemDictator< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: | (Omit< - WriteContractPreparedArgs< - typeof optimismMintableErc20FactoryABI, - TFunctionName - >, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismMintableErc20FactoryAddress + : keyof typeof systemDictatorAddress }) | (Omit< - WriteContractUnpreparedArgs< - typeof optimismMintableErc20FactoryABI, - TFunctionName - >, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismMintableErc20FactoryAddress + : keyof typeof systemDictatorAddress }) ) { return writeContract({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - config.chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function prepareWriteOptimismMintableErc20Factory< - TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, +export function prepareWriteSystemDictator< + TAbi extends readonly unknown[] = typeof systemDictatorABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } + > & { chainId?: keyof typeof systemDictatorAddress } ) { return prepareWriteContract({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - config.chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function watchOptimismMintableErc20FactoryEvent< - TAbi extends readonly unknown[] = typeof optimismMintableErc20FactoryABI, +export function watchSystemDictatorEvent< + TAbi extends readonly unknown[] = typeof systemDictatorABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress }, + > & { chainId?: keyof typeof systemDictatorAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - config.chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, } as WatchContractEventConfig, callback @@ -5981,139 +10111,125 @@ export function watchOptimismMintableErc20FactoryEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link optimismPortalABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function getOptimismPortal( +export function getSystemDictatorGoerli( config: Omit & { - chainId?: keyof typeof optimismPortalAddress + chainId?: keyof typeof systemDictatorGoerliAddress } ) { return getContract({ - abi: optimismPortalABI, - address: - optimismPortalAddress[ - config.chainId as keyof typeof optimismPortalAddress - ], + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link optimismPortalABI}__. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function readOptimismPortal< - TAbi extends readonly unknown[] = typeof optimismPortalABI, +export function readSystemDictatorGoerli< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof optimismPortalAddress + chainId?: keyof typeof systemDictatorGoerliAddress } ) { return readContract({ - abi: optimismPortalABI, - address: - optimismPortalAddress[ - config.chainId as keyof typeof optimismPortalAddress - ], + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismPortalABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function writeOptimismPortal< +export function writeSystemDictatorGoerli< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemDictatorGoerliAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs< + typeof systemDictatorGoerliABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismPortalAddress + : keyof typeof systemDictatorGoerliAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs< + typeof systemDictatorGoerliABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismPortalAddress + : keyof typeof systemDictatorGoerliAddress }) ) { return writeContract({ - abi: optimismPortalABI, - address: - optimismPortalAddress[ - config.chainId as keyof typeof optimismPortalAddress - ], + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismPortalABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function prepareWriteOptimismPortal< - TAbi extends readonly unknown[] = typeof optimismPortalABI, +export function prepareWriteSystemDictatorGoerli< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof optimismPortalAddress } + > & { chainId?: keyof typeof systemDictatorGoerliAddress } ) { return prepareWriteContract({ - abi: optimismPortalABI, - address: - optimismPortalAddress[ - config.chainId as keyof typeof optimismPortalAddress - ], + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismPortalABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function watchOptimismPortalEvent< - TAbi extends readonly unknown[] = typeof optimismPortalABI, +export function watchSystemDictatorGoerliEvent< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof optimismPortalAddress }, + > & { chainId?: keyof typeof systemDictatorGoerliAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: optimismPortalABI, - address: - optimismPortalAddress[ - config.chainId as keyof typeof optimismPortalAddress - ], + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, } as WatchContractEventConfig, callback @@ -6121,232 +10237,265 @@ export function watchOptimismPortalEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link portalSenderABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link teleportrWithdrawerABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function getPortalSender( +export function getTeleportrWithdrawer( config: Omit & { - chainId?: keyof typeof portalSenderAddress + chainId?: keyof typeof teleportrWithdrawerAddress } ) { return getContract({ - abi: portalSenderABI, - address: - portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link portalSenderABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link teleportrWithdrawerABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function readPortalSender< - TAbi extends readonly unknown[] = typeof portalSenderABI, +export function readTeleportrWithdrawer< + TAbi extends readonly unknown[] = typeof teleportrWithdrawerABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof portalSenderAddress + chainId?: keyof typeof teleportrWithdrawerAddress } ) { return readContract({ - abi: portalSenderABI, - address: - portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link portalSenderABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link teleportrWithdrawerABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function writePortalSender< +export function writeTeleportrWithdrawer< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof portalSenderAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof portalSenderAddress + : keyof typeof teleportrWithdrawerAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs< + typeof teleportrWithdrawerABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof portalSenderAddress + : keyof typeof teleportrWithdrawerAddress }) ) { return writeContract({ - abi: portalSenderABI, - address: - portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link portalSenderABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link teleportrWithdrawerABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function prepareWritePortalSender< - TAbi extends readonly unknown[] = typeof portalSenderABI, +export function prepareWriteTeleportrWithdrawer< + TAbi extends readonly unknown[] = typeof teleportrWithdrawerABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof portalSenderAddress } + > & { chainId?: keyof typeof teleportrWithdrawerAddress } ) { return prepareWriteContract({ - abi: portalSenderABI, - address: - portalSenderAddress[config.chainId as keyof typeof portalSenderAddress], + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function getProxyAdmin( +export function watchTeleportrWithdrawerEvent< + TAbi extends readonly unknown[] = typeof teleportrWithdrawerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof teleportrWithdrawerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link attestationStationABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export function getAttestationStation( config: Omit & { - chainId?: keyof typeof proxyAdminAddress + chainId?: keyof typeof attestationStationAddress } ) { return getContract({ - abi: proxyAdminABI, + abi: attestationStationABI, address: - proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link attestationStationABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function readProxyAdmin< - TAbi extends readonly unknown[] = typeof proxyAdminABI, +export function readAttestationStation< + TAbi extends readonly unknown[] = typeof attestationStationABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof proxyAdminAddress + chainId?: keyof typeof attestationStationAddress } ) { return readContract({ - abi: proxyAdminABI, + abi: attestationStationABI, address: - proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link attestationStationABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function writeProxyAdmin< +export function writeAttestationStation< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof attestationStationAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof proxyAdminAddress + : keyof typeof attestationStationAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs< + typeof attestationStationABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof proxyAdminAddress + : keyof typeof attestationStationAddress }) ) { return writeContract({ - abi: proxyAdminABI, + abi: attestationStationABI, address: - proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link attestationStationABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function prepareWriteProxyAdmin< - TAbi extends readonly unknown[] = typeof proxyAdminABI, +export function prepareWriteAttestationStation< + TAbi extends readonly unknown[] = typeof attestationStationABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof proxyAdminAddress } + > & { chainId?: keyof typeof attestationStationAddress } ) { return prepareWriteContract({ - abi: proxyAdminABI, + abi: attestationStationABI, address: - proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link attestationStationABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function watchProxyAdminEvent< - TAbi extends readonly unknown[] = typeof proxyAdminABI, +export function watchAttestationStationEvent< + TAbi extends readonly unknown[] = typeof attestationStationABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof proxyAdminAddress }, + > & { chainId?: keyof typeof attestationStationAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: proxyAdminABI, + abi: attestationStationABI, address: - proxyAdminAddress[config.chainId as keyof typeof proxyAdminAddress], + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], ...config, } as WatchContractEventConfig, callback @@ -6354,129 +10503,139 @@ export function watchProxyAdminEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function getSystemConfig( +export function getL2Erc721Bridge( config: Omit & { - chainId?: keyof typeof systemConfigAddress + chainId?: keyof typeof l2Erc721BridgeAddress } ) { return getContract({ - abi: systemConfigABI, + abi: l2Erc721BridgeABI, address: - systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + l2Erc721BridgeAddress[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function readSystemConfig< - TAbi extends readonly unknown[] = typeof systemConfigABI, +export function readL2Erc721Bridge< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof systemConfigAddress + chainId?: keyof typeof l2Erc721BridgeAddress } ) { return readContract({ - abi: systemConfigABI, + abi: l2Erc721BridgeABI, address: - systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + l2Erc721BridgeAddress[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function writeSystemConfig< +export function writeL2Erc721Bridge< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof systemConfigAddress + TChainId extends number = keyof typeof l2Erc721BridgeAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof systemConfigAddress + : keyof typeof l2Erc721BridgeAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof systemConfigAddress + : keyof typeof l2Erc721BridgeAddress }) ) { return writeContract({ - abi: systemConfigABI, + abi: l2Erc721BridgeABI, address: - systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + l2Erc721BridgeAddress[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function prepareWriteSystemConfig< - TAbi extends readonly unknown[] = typeof systemConfigABI, +export function prepareWriteL2Erc721Bridge< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof systemConfigAddress } + > & { chainId?: keyof typeof l2Erc721BridgeAddress } ) { return prepareWriteContract({ - abi: systemConfigABI, + abi: l2Erc721BridgeABI, address: - systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + l2Erc721BridgeAddress[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function watchSystemConfigEvent< - TAbi extends readonly unknown[] = typeof systemConfigABI, +export function watchL2Erc721BridgeEvent< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof systemConfigAddress }, + > & { chainId?: keyof typeof l2Erc721BridgeAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: systemConfigABI, + abi: l2Erc721BridgeABI, address: - systemConfigAddress[config.chainId as keyof typeof systemConfigAddress], + l2Erc721BridgeAddress[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], ...config, } as WatchContractEventConfig, callback @@ -6484,119 +10643,129 @@ export function watchSystemConfigEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link mintManagerABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function getSystemDictator( +export function getMintManager( config: Omit & { - chainId?: keyof typeof systemDictatorAddress + chainId?: keyof typeof mintManagerAddress } ) { return getContract({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link mintManagerABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function readSystemDictator< - TAbi extends readonly unknown[] = typeof systemDictatorABI, +export function readMintManager< + TAbi extends readonly unknown[] = typeof mintManagerABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof systemDictatorAddress + chainId?: keyof typeof mintManagerAddress } ) { return readContract({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link mintManagerABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function writeSystemDictator< +export function writeMintManager< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof mintManagerAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof systemDictatorAddress + : keyof typeof mintManagerAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof systemDictatorAddress + : keyof typeof mintManagerAddress }) ) { return writeContract({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link mintManagerABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function prepareWriteSystemDictator< - TAbi extends readonly unknown[] = typeof systemDictatorABI, +export function prepareWriteMintManager< + TAbi extends readonly unknown[] = typeof mintManagerABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorAddress } + > & { chainId?: keyof typeof mintManagerAddress } ) { return prepareWriteContract({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link mintManagerABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function watchSystemDictatorEvent< - TAbi extends readonly unknown[] = typeof systemDictatorABI, +export function watchMintManagerEvent< + TAbi extends readonly unknown[] = typeof mintManagerABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorAddress }, + > & { chainId?: keyof typeof mintManagerAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: systemDictatorABI, - address: systemDictatorAddress[1], + abi: mintManagerABI, + address: + mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], ...config, } as WatchContractEventConfig, callback @@ -6604,56 +10773,56 @@ export function watchSystemDictatorEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function getSystemDictatorGoerli( +export function getOptimismMintableErc721Factory( config: Omit & { - chainId?: keyof typeof systemDictatorGoerliAddress + chainId?: keyof typeof optimismMintableErc721FactoryAddress } ) { return getContract({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function readSystemDictatorGoerli< - TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, +export function readOptimismMintableErc721Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof systemDictatorGoerliAddress + chainId?: keyof typeof optimismMintableErc721FactoryAddress } ) { return readContract({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function writeSystemDictatorGoerli< +export function writeOptimismMintableErc721Factory< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof systemDictatorGoerliAddress + TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress >( config: | (Omit< WriteContractPreparedArgs< - typeof systemDictatorGoerliABI, + typeof optimismMintableErc721FactoryABI, TFunctionName >, 'abi' | 'address' @@ -6661,11 +10830,11 @@ export function writeSystemDictatorGoerli< mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof systemDictatorGoerliAddress + : keyof typeof optimismMintableErc721FactoryAddress }) | (Omit< WriteContractUnpreparedArgs< - typeof systemDictatorGoerliABI, + typeof optimismMintableErc721FactoryABI, TFunctionName >, 'abi' | 'address' @@ -6673,56 +10842,56 @@ export function writeSystemDictatorGoerli< mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof systemDictatorGoerliAddress + : keyof typeof optimismMintableErc721FactoryAddress }) ) { return writeContract({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function prepareWriteSystemDictatorGoerli< - TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, +export function prepareWriteOptimismMintableErc721Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } + > & { chainId?: keyof typeof optimismMintableErc721FactoryAddress } ) { return prepareWriteContract({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function watchSystemDictatorGoerliEvent< - TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, +export function watchOptimismMintableErc721FactoryEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorGoerliAddress }, + > & { chainId?: keyof typeof optimismMintableErc721FactoryAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, } as WatchContractEventConfig, callback @@ -6730,129 +10899,129 @@ export function watchSystemDictatorGoerliEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function getMintManager( +export function getOptimismMintableErc721FactoryOptimismGoerli( config: Omit & { - chainId?: keyof typeof mintManagerAddress + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress } ) { return getContract({ - abi: mintManagerABI, - address: - mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function readMintManager< - TAbi extends readonly unknown[] = typeof mintManagerABI, +export function readOptimismMintableErc721FactoryOptimismGoerli< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof mintManagerAddress + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress } ) { return readContract({ - abi: mintManagerABI, - address: - mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function writeMintManager< +export function writeOptimismMintableErc721FactoryOptimismGoerli< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof mintManagerAddress + TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress >( config: | (Omit< - WriteContractPreparedArgs, + WriteContractPreparedArgs< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof mintManagerAddress + : keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress }) | (Omit< - WriteContractUnpreparedArgs, + WriteContractUnpreparedArgs< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof mintManagerAddress + : keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress }) ) { return writeContract({ - abi: mintManagerABI, - address: - mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function prepareWriteMintManager< - TAbi extends readonly unknown[] = typeof mintManagerABI, +export function prepareWriteOptimismMintableErc721FactoryOptimismGoerli< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof mintManagerAddress } + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } ) { return prepareWriteContract({ - abi: mintManagerABI, - address: - mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function watchMintManagerEvent< - TAbi extends readonly unknown[] = typeof mintManagerABI, +export function watchOptimismMintableErc721FactoryOptimismGoerliEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof mintManagerAddress }, + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: mintManagerABI, - address: - mintManagerAddress[config.chainId as keyof typeof mintManagerAddress], + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, } as WatchContractEventConfig, callback @@ -6860,125 +11029,124 @@ export function watchMintManagerEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function getOptimismMintableErc721Factory( +export function getOptimist( config: Omit & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress + chainId?: keyof typeof optimistAddress } ) { return getContract({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function readOptimismMintableErc721Factory< - TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, +export function readOptimist< + TAbi extends readonly unknown[] = typeof optimistABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress + chainId?: keyof typeof optimistAddress } ) { return readContract({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function writeOptimismMintableErc721Factory< +export function writeOptimist< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress + TChainId extends number = keyof typeof optimistAddress >( config: | (Omit< - WriteContractPreparedArgs< - typeof optimismMintableErc721FactoryABI, - TFunctionName - >, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismMintableErc721FactoryAddress + : keyof typeof optimistAddress }) | (Omit< - WriteContractUnpreparedArgs< - typeof optimismMintableErc721FactoryABI, - TFunctionName - >, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismMintableErc721FactoryAddress + : keyof typeof optimistAddress }) ) { return writeContract({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function prepareWriteOptimismMintableErc721Factory< - TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, +export function prepareWriteOptimist< + TAbi extends readonly unknown[] = typeof optimistABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { chainId?: keyof typeof optimismMintableErc721FactoryAddress } + > & { chainId?: keyof typeof optimistAddress } ) { return prepareWriteContract({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function watchOptimismMintableErc721FactoryEvent< - TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, +export function watchOptimistEvent< + TAbi extends readonly unknown[] = typeof optimistABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof optimismMintableErc721FactoryAddress }, + > & { chainId?: keyof typeof optimistAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], ...config, } as WatchContractEventConfig, callback @@ -6986,129 +11154,184 @@ export function watchOptimismMintableErc721FactoryEvent< } /** - * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link optimistAllowlistABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function getOptimismMintableErc721FactoryOptimismGoerli( +export function getOptimistAllowlist( config: Omit & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + chainId?: keyof typeof optimistAllowlistAddress } ) { return getContract({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + config.chainId as keyof typeof optimistAllowlistAddress + ], ...config, }) } /** - * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link readContract}__ with `abi` set to __{@link optimistAllowlistABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function readOptimismMintableErc721FactoryOptimismGoerli< - TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, +export function readOptimistAllowlist< + TAbi extends readonly unknown[] = typeof optimistAllowlistABI, TFunctionName extends string = string >( config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + chainId?: keyof typeof optimistAllowlistAddress } ) { return readContract({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + config.chainId as keyof typeof optimistAllowlistAddress + ], ...config, } as unknown as ReadContractConfig) } /** - * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link getContract}__ with `abi` set to __{@link optimistInviterABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function writeOptimismMintableErc721FactoryOptimismGoerli< +export function getOptimistInviter( + config: Omit & { + chainId?: keyof typeof optimistInviterAddress + } +) { + return getContract({ + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimistInviterABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export function readOptimistInviter< + TAbi extends readonly unknown[] = typeof optimistInviterABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof optimistInviterAddress + } +) { + return readContract({ + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimistInviterABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export function writeOptimistInviter< TFunctionName extends string, TMode extends WriteContractMode, - TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + TChainId extends number = keyof typeof optimistInviterAddress >( config: | (Omit< - WriteContractPreparedArgs< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName - >, + WriteContractPreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + : keyof typeof optimistInviterAddress }) | (Omit< - WriteContractUnpreparedArgs< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName - >, + WriteContractUnpreparedArgs, 'abi' | 'address' > & { mode: TMode chainId?: TMode extends 'prepared' ? TChainId - : keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + : keyof typeof optimistInviterAddress }) ) { return writeContract({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], ...config, - } as unknown as WriteContractArgs) + } as unknown as WriteContractArgs) } /** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimistInviterABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function prepareWriteOptimismMintableErc721FactoryOptimismGoerli< - TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, +export function prepareWriteOptimistInviter< + TAbi extends readonly unknown[] = typeof optimistInviterABI, TFunctionName extends string = string >( config: Omit< PrepareWriteContractConfig, 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } + > & { chainId?: keyof typeof optimistInviterAddress } ) { return prepareWriteContract({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], ...config, } as unknown as PrepareWriteContractConfig) } /** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimistInviterABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function watchOptimismMintableErc721FactoryOptimismGoerliEvent< - TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, +export function watchOptimistInviterEvent< + TAbi extends readonly unknown[] = typeof optimistInviterABI, TEventName extends string = string >( config: Omit< WatchContractEventConfig, 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - }, + > & { chainId?: keyof typeof optimistInviterAddress }, callback: WatchContractEventCallback ) { return watchContractEvent( { - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], ...config, } as WatchContractEventConfig, callback @@ -7613,126 +11836,6 @@ export function watchL2CrossDomainMessengerEvent< ) } -/** - * Wraps __{@link getContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. - * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export function getL2Erc721Bridge( - config: Omit & { - chainId?: keyof typeof l2Erc721BridgeAddress - } -) { - return getContract({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - ...config, - }) -} - -/** - * Wraps __{@link readContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. - * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export function readL2Erc721Bridge< - TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, - TFunctionName extends string = string ->( - config: Omit, 'abi' | 'address'> & { - chainId?: keyof typeof l2Erc721BridgeAddress - } -) { - return readContract({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - ...config, - } as unknown as ReadContractConfig) -} - -/** - * Wraps __{@link writeContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. - * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export function writeL2Erc721Bridge< - TFunctionName extends string, - TMode extends WriteContractMode, - TChainId extends number = keyof typeof l2Erc721BridgeAddress ->( - config: - | (Omit< - WriteContractPreparedArgs, - 'abi' | 'address' - > & { - mode: TMode - chainId?: TMode extends 'prepared' - ? TChainId - : keyof typeof l2Erc721BridgeAddress - }) - | (Omit< - WriteContractUnpreparedArgs, - 'abi' | 'address' - > & { - mode: TMode - chainId?: TMode extends 'prepared' - ? TChainId - : keyof typeof l2Erc721BridgeAddress - }) -) { - return writeContract({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - ...config, - } as unknown as WriteContractArgs) -} - -/** - * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. - * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export function prepareWriteL2Erc721Bridge< - TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, - TFunctionName extends string = string ->( - config: Omit< - PrepareWriteContractConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } -) { - return prepareWriteContract({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - ...config, - } as unknown as PrepareWriteContractConfig) -} - -/** - * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. - * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export function watchL2Erc721BridgeEvent< - TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, - TEventName extends string = string ->( - config: Omit< - WatchContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l2Erc721BridgeAddress }, - callback: WatchContractEventCallback -) { - return watchContractEvent( - { - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - ...config, - } as WatchContractEventConfig, - callback - ) -} - /** * Wraps __{@link getContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. * diff --git a/packages/contracts-ts/src/constants.ts b/packages/contracts-ts/src/constants.ts index c7c498610497..e6bd443bfde1 100644 --- a/packages/contracts-ts/src/constants.ts +++ b/packages/contracts-ts/src/constants.ts @@ -1,4 +1,4 @@ -// Generated by @wagmi/cli@1.3.0 on 7/13/2023 at 5:05:36 PM +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:40:02 PM /* eslint-disable */ @@ -109,1634 +109,1755 @@ export const addressManagerConfig = { } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1CrossDomainMessenger +// AssetReceiver ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) */ -export const l1CrossDomainMessengerABI = [ +export const assetReceiverABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [ - { - name: '_portal', - internalType: 'contract OptimismPortal', - type: 'address', - }, - ], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'newOwner', + internalType: 'address', + type: 'address', indexed: true, }, ], - name: 'FailedRelayedMessage', + name: 'OwnerUpdated', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'Initialized', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', indexed: true, }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'RelayedMessage', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'target', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'sender', + name: 'recipient', internalType: 'address', type: 'address', - indexed: false, - }, - { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'messageNonce', - internalType: 'uint256', - type: 'uint256', - indexed: false, + indexed: true, }, { - name: 'gasLimit', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'SentMessage', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ { - name: 'sender', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'value', + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, ], - name: 'SentMessageExtension1', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_CALLDATA_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'OTHER_MESSENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'WithdrewETH', }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'PORTAL', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RELAY_CALL_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'RELAY_CONSTANT_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_GAS_CHECK_BUFFER', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RELAY_RESERVED_GAS', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'pure', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'baseGas', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'failedMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'withdrawERC20', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'initialize', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_nonce', internalType: 'uint256', type: 'uint256' }, - { name: '_sender', internalType: 'address', type: 'address' }, - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], - name: 'relayMessage', + name: 'withdrawERC721', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'sendMessage', + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'successfulMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverAddress = { + 1: '0x15DdA60616Ffca20371ED1659dBB78E888f65556', + 10: '0x15DdA60616Ffca20371ED1659dBB78E888f65556', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverConfig = { + address: assetReceiverAddress, + abi: assetReceiverABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckBalanceHigh +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export const checkBalanceHighABI = [ { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'params', + internalType: 'struct CheckBalanceHigh.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + ], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'xDomainMessageSender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) */ -export const l1CrossDomainMessengerAddress = { - 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', - 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +export const checkBalanceHighAddress = { + 1: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 5: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 420: '0x5d7103853f12109A7d27F118e54BbC654ad847E9', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) */ -export const l1CrossDomainMessengerConfig = { - address: l1CrossDomainMessengerAddress, - abi: l1CrossDomainMessengerABI, +export const checkBalanceHighConfig = { + address: checkBalanceHighAddress, + abi: checkBalanceHighABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1ERC721Bridge +// CheckBalanceLow ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) */ -export const l1Erc721BridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeFinalized', - }, +export const checkBalanceLowABI = [ { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'params', + internalType: 'struct CheckBalanceLow.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], indexed: false, }, ], - name: 'ERC721BridgeInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - ], - name: 'deposits', + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export const checkBalanceLowAddress = { + 1: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + 5: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + 420: '0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export const checkBalanceLowConfig = { + address: checkBalanceLowAddress, + abi: checkBalanceLowABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckGelatoLow +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowABI = [ { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC721', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messenger', - outputs: [ { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', + name: 'params', + internalType: 'struct CheckGelatoLow.Params', + type: 'tuple', + components: [ + { name: 'treasury', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + ], + indexed: false, }, ], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowAddress = { + 1: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + 5: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + 420: '0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowConfig = { + address: checkGelatoLowAddress, + abi: checkGelatoLowABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckTrue +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) + */ +export const checkTrueABI = [ { - stateMutability: 'view', + stateMutability: 'pure', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) */ -export const l1Erc721BridgeAddress = { - 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', - 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +export const checkTrueAddress = { + 1: '0x5c741a38cb11424711231777D71689C458eE835D', + 5: '0x5c741a38cb11424711231777D71689C458eE835D', + 420: '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) */ -export const l1Erc721BridgeConfig = { - address: l1Erc721BridgeAddress, - abi: l1Erc721BridgeABI, +export const checkTrueConfig = { + address: checkTrueAddress, + abi: checkTrueABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1StandardBridge +// Drippie ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeABI = [ +export const drippieABI = [ { stateMutability: 'nonpayable', type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ - { name: '_messenger', internalType: 'address payable', type: 'address' }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, ], + name: 'DripCreated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'remoteToken', + name: 'executor', internalType: 'address', type: 'address', - indexed: true, + indexed: false, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', + name: 'timestamp', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20BridgeFinalized', + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'remoteToken', + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, + ], + name: 'DripStatusUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20BridgeInitiated', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'l2Token', + name: 'recipient', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, ], - name: 'ERC20DepositInitiated', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'l2Token', + name: 'recipient', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'ERC20WithdrawalFinalized', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, }, - ], - name: 'ETHBridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ETHBridgeInitiated', + name: 'WithdrewETH', }, { - type: 'event', - anonymous: false, + stateMutability: 'payable', + type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'ETHDepositInitiated', }, { - type: 'event', - anonymous: false, + stateMutability: 'payable', + type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'ETHWithdrawalFinalized', }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, ], - name: 'bridgeERC20', + name: 'create', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20To', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], - name: 'bridgeETH', - outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETHTo', - outputs: [], + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositERC20', - outputs: [], + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositERC20To', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, ], - name: 'depositETH', + name: 'status', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'depositETHTo', + name: 'withdrawERC20', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - ], - name: 'deposits', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeBridgeERC20', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], - name: 'finalizeBridgeETH', + name: 'withdrawERC721', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address payable', type: 'address' }, { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeERC20Withdrawal', + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeETHWithdrawal', + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l2TokenBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeAddress = { - 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', - 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +export const drippieAddress = { + 1: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeConfig = { - address: l1StandardBridgeAddress, - abi: l1StandardBridgeABI, +export const drippieConfig = { + address: drippieAddress, + abi: drippieABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2OutputOracle +// Drippie_goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleABI = [ +export const drippieGoerliABI = [ { stateMutability: 'nonpayable', type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ - { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, - { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, }, - { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, - { name: '_proposer', internalType: 'address', type: 'address' }, - { name: '_challenger', internalType: 'address', type: 'address' }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: '_finalizationPeriodSeconds', + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, + ], + name: 'DripCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'executor', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'timestamp', internalType: 'uint256', type: 'uint256', + indexed: false, }, ], + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, ], - name: 'Initialized', + name: 'DripStatusUpdated', }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'outputRoot', - internalType: 'bytes32', - type: 'bytes32', + name: 'newOwner', + internalType: 'address', + type: 'address', indexed: true, }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, { - name: 'l2OutputIndex', + name: 'amount', internalType: 'uint256', type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'l2BlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'recipient', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'l1Timestamp', + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, ], - name: 'OutputProposed', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'prevNextOutputIndex', - internalType: 'uint256', - type: 'uint256', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'newNextOutputIndex', - internalType: 'uint256', - type: 'uint256', + name: 'recipient', + internalType: 'address', + type: 'address', indexed: true, }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'OutputsDeleted', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'CHALLENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'FINALIZATION_PERIOD_SECONDS', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'L2_BLOCK_TIME', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PROPOSER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'WithdrewERC721', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'SUBMISSION_INTERVAL', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'computeL2Timestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'deleteL2Outputs', - outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2Output', - outputs: [ + { name: '_name', internalType: 'string', type: 'string' }, { - name: '', - internalType: 'struct Types.OutputProposal', + name: '_config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, ], + name: 'create', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2OutputAfter', + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', outputs: [ { - name: '', - internalType: 'struct Types.OutputProposal', + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2OutputIndexAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, - ], - name: 'initialize', - outputs: [], + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'latestBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'latestOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'nextBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + ], + name: 'status', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'nextOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, ], - name: 'proposeL2Output', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'startingBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'startingTimestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleAddress = { - 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', - 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +export const drippieGoerliAddress = { + 5: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleConfig = { - address: l2OutputOracleAddress, - abi: l2OutputOracleABI, +export const drippieGoerliConfig = { + address: drippieGoerliAddress, + abi: drippieGoerliABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC20Factory +// Drippie_optimism-goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismMintableErc20FactoryABI = [ +export const drippieOptimismGoerliABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'deployer', - internalType: 'address', - type: 'address', + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], indexed: false, }, ], - name: 'OptimismMintableERC20Created', + name: 'DripCreated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'remoteToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'localToken', + name: 'executor', internalType: 'address', type: 'address', - indexed: true, - }, - ], - name: 'StandardL2TokenCreated', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, - ], - name: 'createOptimismMintableERC20', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, - ], - name: 'createStandardL2Token', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, -] as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) - */ -export const optimismMintableErc20FactoryAddress = { - 1: '0x4200000000000000000000000000000000000012', - 5: '0x4200000000000000000000000000000000000012', - 420: '0x4200000000000000000000000000000000000012', -} as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) - */ -export const optimismMintableErc20FactoryConfig = { - address: optimismMintableErc20FactoryAddress, - abi: optimismMintableErc20FactoryABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismPortal -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) - */ -export const optimismPortalABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_l2Oracle', - internalType: 'contract L2OutputOracle', - type: 'address', + indexed: false, }, - { name: '_guardian', internalType: 'address', type: 'address' }, - { name: '_paused', internalType: 'bool', type: 'bool' }, { - name: '_config', - internalType: 'contract SystemConfig', - type: 'address', + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, ], - name: 'Initialized', + name: 'DripStatusUpdated', }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'account', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Paused', + name: 'OwnerUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'version', + name: 'amount', internalType: 'uint256', type: 'uint256', - indexed: true, - }, - { - name: 'opaqueData', - internalType: 'bytes', - type: 'bytes', indexed: false, }, ], - name: 'TransactionDeposited', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'account', + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', internalType: 'address', type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, ], - name: 'Unpaused', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'WithdrawalFinalized', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'WithdrawalProven', + name: 'WithdrewETH', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'GUARDIAN', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'L2_ORACLE', - outputs: [ - { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'SYSTEM_CONFIG', + name: 'CALL', outputs: [ - { name: '', internalType: 'contract SystemConfig', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], }, { stateMutability: 'payable', type: 'function', inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_target', internalType: 'address', type: 'address' }, { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'depositTransaction', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [], - name: 'donateETH', - outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', + name: '_config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, ], - name: 'finalizeWithdrawalTransaction', + name: 'create', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'finalizedWithdrawals', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], - name: 'initialize', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], - name: 'isOutputFinalized', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l2Sender', + name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'pure', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'params', - outputs: [ - { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, - { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, - { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, ], + name: 'status', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'pause', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'paused', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', - type: 'tuple', - components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - }, - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - { - name: '_outputRootProof', - internalType: 'struct Types.OutputRootProof', - type: 'tuple', - components: [ - { name: 'version', internalType: 'bytes32', type: 'bytes32' }, - { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'messagePasserStorageRoot', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, - ], - }, - { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, ], - name: 'proveWithdrawalTransaction', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'provenWithdrawals', - outputs: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], + name: 'withdrawERC721', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'unpause', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismPortalAddress = { - 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', - 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +export const drippieOptimismGoerliAddress = { + 420: '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismPortalConfig = { - address: optimismPortalAddress, - abi: optimismPortalABI, +export const drippieOptimismGoerliConfig = { + address: drippieOptimismGoerliAddress, + abi: drippieOptimismGoerliABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PortalSender +// L1CrossDomainMessenger ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const portalSenderABI = [ +export const l1CrossDomainMessengerABI = [ { stateMutability: 'nonpayable', type: 'constructor', @@ -1749,288 +1870,274 @@ export const portalSenderABI = [ ], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PORTAL', - outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, ], + name: 'FailedRelayedMessage', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'donate', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, -] as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) - */ -export const portalSenderAddress = { - 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', - 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', -} as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) - */ -export const portalSenderConfig = { - address: portalSenderAddress, - abi: portalSenderABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// ProxyAdmin -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) - */ -export const proxyAdminABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'target', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'sender', internalType: 'address', type: 'address', - indexed: true, + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], - name: 'OwnershipTransferred', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'addressManager', - outputs: [ - { name: '', internalType: 'contract AddressManager', type: 'address' }, - ], + name: 'SentMessage', }, { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_newAdmin', internalType: 'address', type: 'address' }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'changeProxyAdmin', - outputs: [], + name: 'SentMessageExtension1', }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - ], - name: 'getProxyAdmin', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], - name: 'getProxyImplementation', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'implementationName', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'isUpgrading', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'OTHER_MESSENGER', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'proxyType', + inputs: [], + name: 'PORTAL', outputs: [ - { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_address', internalType: 'address', type: 'address' }, - ], - name: 'setAddress', - outputs: [], + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { - name: '_address', - internalType: 'contract AddressManager', - type: 'address', - }, - ], - name: 'setAddressManager', - outputs: [], + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - ], - name: 'setImplementationName', - outputs: [], + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'pure', type: 'function', inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { - name: '_type', - internalType: 'enum ProxyAdmin.ProxyType', - type: 'uint8', - }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, ], - name: 'setProxyType', - outputs: [], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], - name: 'setUpgrading', - outputs: [], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'initialize', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, ], - name: 'upgrade', + name: 'relayMessage', outputs: [], }, { stateMutability: 'payable', type: 'function', inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, ], - name: 'upgradeAndCall', + name: 'sendMessage', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const proxyAdminAddress = { - 1: '0x4200000000000000000000000000000000000018', - 5: '0x4200000000000000000000000000000000000018', +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const proxyAdminConfig = { - address: proxyAdminAddress, - abi: proxyAdminABI, +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemConfig +// L1ERC721Bridge ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigABI = [ +export const l1Erc721BridgeABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, ], }, { @@ -2038,244 +2145,137 @@ export const systemConfigABI = [ anonymous: false, inputs: [ { - name: 'version', - internalType: 'uint256', - type: 'uint256', + name: 'localToken', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'updateType', - internalType: 'enum SystemConfig.UpdateType', - type: 'uint8', + name: 'remoteToken', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, - ], - name: 'ConfigUpdate', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'Initialized', + name: 'ERC721BridgeFinalized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'ERC721BridgeInitiated', }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'UNSAFE_BLOCK_SIGNER_SLOT', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'batcherHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'gasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'initialize', + name: 'finalizeBridgeERC721', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'overhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'resourceConfig', - outputs: [ - { - name: '', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'scalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'setBatcherHash', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - ], - name: 'setGasConfig', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], - name: 'setGasLimit', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, - ], - name: 'setResourceConfig', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - ], - name: 'setUnsafeBlockSigner', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'unsafeBlockSigner', + name: 'otherBridge', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { @@ -2288,619 +2288,491 @@ export const systemConfigABI = [ ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigAddress = { - 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', - 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigConfig = { - address: systemConfigAddress, - abi: systemConfigABI, +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemDictator +// L1StandardBridge ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, +export const l1StandardBridgeABI = [ { - type: 'event', - anonymous: false, + stateMutability: 'nonpayable', + type: 'constructor', inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: '_messenger', internalType: 'address payable', type: 'address' }, ], - name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'ERC20BridgeFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'config', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, }, ], + name: 'ERC20WithdrawalFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'exit1', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'exited', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'finalize', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], - }, - ], - }, + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'initialize', + name: 'bridgeERC20To', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'l2OutputOracleDynamicConfig', - outputs: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], + name: 'bridgeETH', + outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'oldL1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'optimismPortalDynamicConfig', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'phase1', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'phase2', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'renounceOwnership', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'step1', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [], - name: 'step2', - outputs: [], + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step3', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'step4', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step5', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], - }, + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ { - name: '_optimismPortalDynamicConfig', - internalType: 'bool', - type: 'bool', + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', }, ], - name: 'updateDynamicConfig', - outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorAddress = { - 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', } as const /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorConfig = { - address: systemDictatorAddress, - abi: systemDictatorABI, +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemDictator_goerli +// L2OutputOracle ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export const systemDictatorGoerliABI = [ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, { type: 'event', anonymous: false, @@ -2914,677 +2786,660 @@ export const systemDictatorGoerliABI = [ anonymous: false, inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, { - name: 'newOwner', - internalType: 'address', - type: 'address', + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', indexed: true, }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'config', - outputs: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', + name: '', + internalType: 'struct Types.OutputProposal', type: 'tuple', components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, ], }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', + name: '', + internalType: 'struct Types.OutputProposal', type: 'tuple', components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, ], }, ], }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'exit1', - outputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'finalize', + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - ], - }, - ], + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, }, ], - name: 'initialize', - outputs: [], + name: 'OptimismMintableERC20Created', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l2OutputOracleDynamicConfig', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, }, ], + name: 'StandardL2TokenCreated', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'oldL1CrossDomainMessenger', + name: 'BRIDGE', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'owner', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'step1', - outputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ { stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step2', - outputs: [], + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step3', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step4', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step5', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step6', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, }, ], - name: 'updateL2OutputOracleDynamicConfig', - outputs: [], + name: 'Paused', }, -] as const - -/** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) - */ -export const systemDictatorGoerliAddress = { - 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', -} as const - -/** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) - */ -export const systemDictatorGoerliConfig = { - address: systemDictatorGoerliAddress, - abi: systemDictatorGoerliABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// MintManager -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', + type: 'event', + anonymous: false, inputs: [ - { name: '_upgrader', internalType: 'address', type: 'address' }, - { name: '_governanceToken', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], + name: 'TransactionDeposited', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'account', internalType: 'address', type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'newOwner', - internalType: 'address', - type: 'address', + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, ], - name: 'OwnershipTransferred', + name: 'WithdrawalProven', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'DENOMINATOR', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_CAP', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_PERIOD', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'governanceToken', - outputs: [ - { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_account', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, ], - name: 'mint', + name: 'finalizeWithdrawalTransaction', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'mintPermittedAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'l2Sender', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'pause', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_newMintManager', internalType: 'address', type: 'address' }, - ], - name: 'upgrade', - outputs: [], - }, -] as const - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerAddress = { - 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', - 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', -} as const - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerConfig = { - address: mintManagerAddress, - abi: mintManagerABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC721Factory -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) - */ -export const optimismMintableErc721FactoryABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, { - name: 'deployer', - internalType: 'address', - type: 'address', - indexed: false, + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, ], - name: 'OptimismMintableERC721Created', + name: 'proveWithdrawalTransaction', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'bridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'remoteChainId', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'unpause', + outputs: [], }, { stateMutability: 'view', @@ -3593,509 +3448,329 @@ export const optimismMintableErc721FactoryABI = [ name: 'version', outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export const optimismMintableErc721FactoryAddress = { - 10: '0x4200000000000000000000000000000000000017', +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', } as const /** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export const optimismMintableErc721FactoryConfig = { - address: optimismMintableErc721FactoryAddress, - abi: optimismMintableErc721FactoryABI, +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC721Factory_optimism-goerli +// PortalSender ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliABI = [ +export const portalSenderABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'deployer', - internalType: 'address', + name: '_portal', + internalType: 'contract OptimismPortal', type: 'address', - indexed: false, }, ], - name: 'OptimismMintableERC721Created', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'REMOTE_CHAIN_ID', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'donate', + outputs: [], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliAddress = { - 420: '0x4200000000000000000000000000000000000017', +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliConfig = { - address: optimismMintableErc721FactoryOptimismGoerliAddress, - abi: optimismMintableErc721FactoryOptimismGoerliABI, +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// BaseFeeVault +// ProxyAdmin ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const baseFeeVaultABI = [ +export const proxyAdminABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'from', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Withdrawal', + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) - */ -export const baseFeeVaultAddress = { - 420: '0x4200000000000000000000000000000000000019', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) - */ -export const baseFeeVaultConfig = { - address: baseFeeVaultAddress, - abi: baseFeeVaultABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// GasPriceOracle -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'baseFee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'pure', - type: 'function', - inputs: [], - name: 'decimals', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'gasPrice', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], - name: 'getL1Fee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], - name: 'getL1GasUsed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l1BaseFee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'overhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'scalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleAddress = { - 420: '0x420000000000000000000000000000000000000F', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleConfig = { - address: gasPriceOracleAddress, - abi: gasPriceOracleABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1Block -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) - */ -export const l1BlockABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'DEPOSITOR_ACCOUNT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'basefee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'renounceOwnership', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'batcherHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'hash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1FeeOverhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1FeeScalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'number', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'sequenceNumber', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_number', internalType: 'uint64', type: 'uint64' }, - { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, - { name: '_basefee', internalType: 'uint256', type: 'uint256' }, - { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, - { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, ], - name: 'setL1BlockValues', + name: 'upgrade', outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'timestamp', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const l1BlockAddress = { - 420: '0x4200000000000000000000000000000000000015', +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const l1BlockConfig = { - address: l1BlockAddress, - abi: l1BlockABI, +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1FeeVault +// SystemConfig ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l1FeeVaultABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: false, - }, - ], - name: 'Withdrawal', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) - */ -export const l1FeeVaultAddress = { - 420: '0x420000000000000000000000000000000000001A', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) - */ -export const l1FeeVaultConfig = { - address: l1FeeVaultAddress, - abi: l1FeeVaultABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2CrossDomainMessenger -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) - */ -export const l2CrossDomainMessengerABI = [ +export const systemConfigABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, { - name: '_l1CrossDomainMessenger', - internalType: 'address', - type: 'address', + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], }, ], }, @@ -4104,13 +3779,20 @@ export const l2CrossDomainMessengerABI = [ anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'version', + internalType: 'uint256', + type: 'uint256', indexed: true, }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'FailedRelayedMessage', + name: 'ConfigUpdate', }, { type: 'event', @@ -4125,1169 +3807,4277 @@ export const l2CrossDomainMessengerABI = [ anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - ], - name: 'RelayedMessage', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'target', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: false, - }, - { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'messageNonce', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'gasLimit', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - ], - name: 'SentMessage', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'sender', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, ], - name: 'SentMessageExtension1', + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_GAS_CALLDATA_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + name: 'gasLimit', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'OTHER_MESSENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_CALL_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_CONSTANT_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'RELAY_GAS_CHECK_BUFFER', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'renounceOwnership', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_RESERVED_GAS', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'pure', - type: 'function', - inputs: [ - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - ], - name: 'baseGas', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'failedMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'initialize', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_nonce', internalType: 'uint256', type: 'uint256' }, - { name: '_sender', internalType: 'address', type: 'address' }, - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, ], - name: 'relayMessage', + name: 'setResourceConfig', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, ], - name: 'sendMessage', + name: 'setUnsafeBlockSigner', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'successfulMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'xDomainMessageSender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l2CrossDomainMessengerAddress = { - 420: '0x4200000000000000000000000000000000000007', +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l2CrossDomainMessengerConfig = { - address: l2CrossDomainMessengerAddress, - abi: l2CrossDomainMessengerABI, +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2ERC721Bridge +// SystemDictator ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2Erc721BridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, +export const systemDictatorABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { type: 'event', anonymous: false, inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, ], - name: 'ERC721BridgeFinalized', + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'remoteToken', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeBridgeERC721', - outputs: [], + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export const l2Erc721BridgeAddress = { - 420: '0x4200000000000000000000000000000000000014', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export const l2Erc721BridgeConfig = { - address: l2Erc721BridgeAddress, - abi: l2Erc721BridgeABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2StandardBridge -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_otherBridge', - internalType: 'address payable', - type: 'address', - }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ + name: 'config', + outputs: [ { - name: 'l1Token', - internalType: 'address', - type: 'address', - indexed: true, + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], }, { - name: 'l2Token', - internalType: 'address', - type: 'address', - indexed: true, + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], }, ], - name: 'DepositFinalized', }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC20BridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC20BridgeInitiated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ETHBridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ETHBridgeInitiated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'l1Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'l2Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'WithdrawalInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20To', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETH', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETHTo', - outputs: [], + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - ], - name: 'deposits', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC20', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeETH', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeDeposit', + inputs: [], + name: 'exit1', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l1TokenBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], + name: 'finalize', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'withdraw', - outputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'withdrawTo', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeAddress = { - 420: '0x4200000000000000000000000000000000000010', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeConfig = { - address: l2StandardBridgeAddress, - abi: l2StandardBridgeABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2ToL1MessagePasser -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) - */ -export const l2ToL1MessagePasserABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'nonce', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'target', - internalType: 'address', - type: 'address', - indexed: true, + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ { - name: 'value', + name: 'l2OutputOracleStartingBlockNumber', internalType: 'uint256', type: 'uint256', - indexed: false, }, { - name: 'gasLimit', + name: 'l2OutputOracleStartingTimestamp', internalType: 'uint256', type: 'uint256', - indexed: false, - }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: false, }, ], - name: 'MessagePassed', }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - ], - name: 'WithdrawerBalanceBurnt', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + name: 'optimismPortalDynamicConfig', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'burn', - outputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, - ], - name: 'initiateWithdrawal', + inputs: [], + name: 'phase1', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'phase2', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'sentMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'renounceOwnership', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', + }, + ], + name: 'updateDynamicConfig', + outputs: [], }, - { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2ToL1MessagePasserAddress = { - 420: '0x4200000000000000000000000000000000000016', +export const systemDictatorAddress = { + 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2ToL1MessagePasserConfig = { - address: l2ToL1MessagePasserAddress, - abi: l2ToL1MessagePasserABI, +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SequencerFeeVault +// SystemDictator_goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export const sequencerFeeVaultABI = [ +export const systemDictatorGoerliABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'from', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Withdrawal', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l1FeeWallet', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) - */ -export const sequencerFeeVaultAddress = { - 420: '0x4200000000000000000000000000000000000011', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) - */ -export const sequencerFeeVaultConfig = { - address: sequencerFeeVaultAddress, - abi: sequencerFeeVaultABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// eslintIgnore -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// addressesByContractByNetwork -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const addresses = { - AddressManager: { - '1': '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', - '5': '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', - }, - L1CrossDomainMessenger: { - '1': '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', - '5': '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', - }, - L1ERC721Bridge: { - '1': '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', - '5': '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', - }, - L1StandardBridge: { - '1': '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', - '5': '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', - }, - L2OutputOracle: { - '1': '0xdfe97868233d1aa22e815a266982f2cf17685a27', - '5': '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', - }, - OptimismMintableERC20Factory: { - '1': '0x4200000000000000000000000000000000000012', - '5': '0x4200000000000000000000000000000000000012', - '420': '0x4200000000000000000000000000000000000012', - }, - OptimismPortal: { - '1': '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', - '5': '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', - }, - PortalSender: { - '1': '0x0A893d9576b9cFD9EF78595963dc973238E78210', - '5': '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', - }, - ProxyAdmin: { - '1': '0x4200000000000000000000000000000000000018', - '5': '0x4200000000000000000000000000000000000018', - }, - SystemConfig: { - '1': '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', - '5': '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', - }, - SystemDictator: { '1': '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB' }, - SystemDictator_goerli: { '5': '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971' }, - MintManager: { - '10': '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', - '420': '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', - }, - OptimismMintableERC721Factory: { - '10': '0x4200000000000000000000000000000000000017', - }, - 'OptimismMintableERC721Factory_optimism-goerli': { - '420': '0x4200000000000000000000000000000000000017', - }, - BaseFeeVault: { '420': '0x4200000000000000000000000000000000000019' }, - GasPriceOracle: { '420': '0x420000000000000000000000000000000000000F' }, - L1Block: { '420': '0x4200000000000000000000000000000000000015' }, - L1FeeVault: { '420': '0x420000000000000000000000000000000000001a' }, - L2CrossDomainMessenger: { - '420': '0x4200000000000000000000000000000000000007', - }, - L2ERC721Bridge: { '420': '0x4200000000000000000000000000000000000014' }, - L2StandardBridge: { '420': '0x4200000000000000000000000000000000000010' }, - L2ToL1MessagePasser: { '420': '0x4200000000000000000000000000000000000016' }, - SequencerFeeVault: { '420': '0x4200000000000000000000000000000000000011' }, -} as const -export const predeploys = { - LegacyMessagePasser: { - address: '0x4200000000000000000000000000000000000000', - introduced: 'Legacy', - deprecated: true, - proxied: true, - }, - DeployerWhitelist: { - address: '0x4200000000000000000000000000000000000002', - introduced: 'Legacy', - deprecated: true, - proxied: true, - }, - LegacyERC20ETH: { - address: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', - introduced: 'Legacy', - deprecated: true, - proxied: false, - }, - WETH9: { - address: '0x4200000000000000000000000000000000000006', - introduced: 'Legacy', - deprecated: false, - proxied: false, - }, - L2CrossDomainMessenger: { - address: '0x4200000000000000000000000000000000000007', - introduced: 'Legacy', - deprecated: false, - proxied: true, - }, - L2StandardBridge: { - address: '0x4200000000000000000000000000000000000010', - introduced: 'Legacy', - deprecated: false, - proxied: true, - }, - SequencerFeeVault: { - address: '0x4200000000000000000000000000000000000011', - introduced: 'Legacy', - deprecated: false, - proxied: true, - }, - OptimismMintableERC20Factory: { - address: '0x4200000000000000000000000000000000000012', - introduced: 'Legacy', - deprecated: false, - proxied: true, - }, - L1BlockNumber: { - address: '0x4200000000000000000000000000000000000013', - introduced: 'Legacy', - deprecated: true, - proxied: true, - }, - GasPriceOracle: { - address: '0x420000000000000000000000000000000000000F', - introduced: 'Legacy', - deprecated: false, - proxied: true, - }, - GovernanceToken: { - address: '0x4200000000000000000000000000000000000042', - introduced: 'Legacy', - deprecated: false, - proxied: false, - }, - L1Block: { - address: '0x4200000000000000000000000000000000000015', - introduced: 'Bedrock', - deprecated: false, - proxied: true, - }, - L2ToL1MessagePasser: { - address: '0x4200000000000000000000000000000000000016', - introduced: 'Bedrock', - deprecated: false, - proxied: true, + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], }, - L2ERC721Bridge: { - address: '0x4200000000000000000000000000000000000014', - introduced: 'Legacy', - deprecated: false, - proxied: true, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, - OptimismMintableERC721Factory: { - address: '0x4200000000000000000000000000000000000017', - introduced: 'Bedrock', - deprecated: false, - proxied: true, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, - ProxyAdmin: { - address: '0x4200000000000000000000000000000000000018', - introduced: 'Bedrock', - deprecated: false, - proxied: true, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], }, - BaseFeeVault: { - address: '0x4200000000000000000000000000000000000019', - introduced: 'Bedrock', - deprecated: false, - proxied: true, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], }, - L1FeeVault: { - address: '0x420000000000000000000000000000000000001a', - introduced: 'Bedrock', - deprecated: false, - proxied: true, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, -} - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// abisByContractByNetwork -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateL2OutputOracleDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliAddress = { + 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TeleportrWithdrawer +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC20', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'data', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'recipient', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'setData', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'setRecipient', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_teleportr', internalType: 'address', type: 'address' }], + name: 'setTeleportr', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'teleportr', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdrawFromTeleportr', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerAddress = { + 1: '0x78A25524D90E3D0596558fb43789bD800a5c3007', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerConfig = { + address: teleportrWithdrawerAddress, + abi: teleportrWithdrawerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AttestationStation +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'about', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'key', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'AttestationCreated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_attestations', + internalType: 'struct AttestationStation.AttestationData[]', + type: 'tuple[]', + components: [ + { name: 'about', internalType: 'address', type: 'address' }, + { name: 'key', internalType: 'bytes32', type: 'bytes32' }, + { name: 'val', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'attest', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_about', internalType: 'address', type: 'address' }, + { name: '_key', internalType: 'bytes32', type: 'bytes32' }, + { name: '_val', internalType: 'bytes', type: 'bytes' }, + ], + name: 'attest', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'attestations', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationAddress = { + 10: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', + 420: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationConfig = { + address: attestationStationAddress, + abi: attestationStationABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 10: '0x4200000000000000000000000000000000000014', + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryAddress = { + 10: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliAddress = { + 420: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Optimist +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + { name: '_baseURIAttestor', internalType: 'address', type: 'address' }, + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { + name: '_optimistAllowlist', + internalType: 'contract OptimistAllowlist', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BASE_URI_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BASE_URI_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_ALLOWLIST', + outputs: [ + { name: '', internalType: 'contract OptimistAllowlist', type: 'address' }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'isOnAllowList', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + name: 'tokenIdOfAddress', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistAddress = { + 10: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', + 420: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistConfig = { + address: optimistAddress, + abi: optimistABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimistAllowlist +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { name: '_allowlistAttestor', internalType: 'address', type: 'address' }, + { + name: '_coinbaseQuestAttestor', + internalType: 'address', + type: 'address', + }, + { name: '_optimistInviter', internalType: 'address', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ALLOWLIST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'COINBASE_QUEST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_INVITER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_claimer', internalType: 'address', type: 'address' }], + name: 'isAllowedToMint', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistAddress = { + 10: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', + 420: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistConfig = { + address: optimistAllowlistAddress, + abi: optimistAllowlistABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimistInviter +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_inviteGranter', internalType: 'address', type: 'address' }, + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'issuer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'claimer', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'InviteClaimed', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CAN_INVITE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CLAIMABLE_INVITE_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EIP712_VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'INVITE_GRANTER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_COMMITMENT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_claimer', internalType: 'address', type: 'address' }, + { + name: '_claimableInvite', + internalType: 'struct OptimistInviter.ClaimableInvite', + type: 'tuple', + components: [ + { name: 'issuer', internalType: 'address', type: 'address' }, + { name: 'nonce', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'claimInvite', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_commitment', internalType: 'bytes32', type: 'bytes32' }], + name: 'commitInvite', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'commitmentTimestamps', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'inviteCounts', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_accounts', internalType: 'address[]', type: 'address[]' }, + { name: '_inviteCount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setInviteCounts', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'usedNonces', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterAddress = { + 10: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', + 420: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterConfig = { + address: optimistInviterAddress, + abi: optimistInviterABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// addressesByContractByNetwork +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const addresses = { + AddressManager: { + '1': '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + '5': '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', + }, + AssetReceiver: { + '1': '0x15DdA60616Ffca20371ED1659dBB78E888f65556', + '10': '0x15DdA60616Ffca20371ED1659dBB78E888f65556', + }, + CheckBalanceHigh: { + '1': '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + '5': '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + '420': '0x5d7103853f12109A7d27F118e54BbC654ad847E9', + }, + CheckBalanceLow: { + '1': '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + '5': '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + '420': '0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474', + }, + CheckGelatoLow: { + '1': '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + '5': '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + '420': '0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862', + }, + CheckTrue: { + '1': '0x5c741a38cb11424711231777D71689C458eE835D', + '5': '0x5c741a38cb11424711231777D71689C458eE835D', + '420': '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32', + }, + Drippie: { '1': '0x44b3A2a040057eBafC601A78647e805fd58B1f50' }, + Drippie_goerli: { '5': '0x44b3A2a040057eBafC601A78647e805fd58B1f50' }, + 'Drippie_optimism-goerli': { + '420': '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86', + }, + L1CrossDomainMessenger: { + '1': '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + '5': '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', + }, + L1ERC721Bridge: { + '1': '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + '5': '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', + }, + L1StandardBridge: { + '1': '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + '5': '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', + }, + L2OutputOracle: { + '1': '0xdfe97868233d1aa22e815a266982f2cf17685a27', + '5': '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', + }, + OptimismMintableERC20Factory: { + '1': '0x4200000000000000000000000000000000000012', + '5': '0x4200000000000000000000000000000000000012', + '420': '0x4200000000000000000000000000000000000012', + }, + OptimismPortal: { + '1': '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + '5': '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', + }, + PortalSender: { + '1': '0x0A893d9576b9cFD9EF78595963dc973238E78210', + '5': '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', + }, + ProxyAdmin: { + '1': '0x4200000000000000000000000000000000000018', + '5': '0x4200000000000000000000000000000000000018', + }, + SystemConfig: { + '1': '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + '5': '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', + }, + SystemDictator: { '1': '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB' }, + SystemDictator_goerli: { '5': '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971' }, + TeleportrWithdrawer: { '1': '0x78A25524D90E3D0596558fb43789bD800a5c3007' }, + AttestationStation: { + '10': '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', + '420': '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', + }, + L2ERC721Bridge: { + '10': '0x4200000000000000000000000000000000000014', + '420': '0x4200000000000000000000000000000000000014', + }, + MintManager: { + '10': '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + '420': '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', + }, + OptimismMintableERC721Factory: { + '10': '0x4200000000000000000000000000000000000017', + }, + 'OptimismMintableERC721Factory_optimism-goerli': { + '420': '0x4200000000000000000000000000000000000017', + }, + Optimist: { + '10': '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', + '420': '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', + }, + OptimistAllowlist: { + '10': '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', + '420': '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', + }, + OptimistInviter: { + '10': '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', + '420': '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', + }, + BaseFeeVault: { '420': '0x4200000000000000000000000000000000000019' }, + GasPriceOracle: { '420': '0x420000000000000000000000000000000000000F' }, + L1Block: { '420': '0x4200000000000000000000000000000000000015' }, + L1FeeVault: { '420': '0x420000000000000000000000000000000000001a' }, + L2CrossDomainMessenger: { + '420': '0x4200000000000000000000000000000000000007', + }, + L2StandardBridge: { '420': '0x4200000000000000000000000000000000000010' }, + L2ToL1MessagePasser: { '420': '0x4200000000000000000000000000000000000016' }, + SequencerFeeVault: { '420': '0x4200000000000000000000000000000000000011' }, +} as const +export const predeploys = { + LegacyMessagePasser: { + address: '0x4200000000000000000000000000000000000000', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + DeployerWhitelist: { + address: '0x4200000000000000000000000000000000000002', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + LegacyERC20ETH: { + address: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', + introduced: 'Legacy', + deprecated: true, + proxied: false, + }, + WETH9: { + address: '0x4200000000000000000000000000000000000006', + introduced: 'Legacy', + deprecated: false, + proxied: false, + }, + L2CrossDomainMessenger: { + address: '0x4200000000000000000000000000000000000007', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + L2StandardBridge: { + address: '0x4200000000000000000000000000000000000010', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + SequencerFeeVault: { + address: '0x4200000000000000000000000000000000000011', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + OptimismMintableERC20Factory: { + address: '0x4200000000000000000000000000000000000012', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + L1BlockNumber: { + address: '0x4200000000000000000000000000000000000013', + introduced: 'Legacy', + deprecated: true, + proxied: true, + }, + GasPriceOracle: { + address: '0x420000000000000000000000000000000000000F', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + GovernanceToken: { + address: '0x4200000000000000000000000000000000000042', + introduced: 'Legacy', + deprecated: false, + proxied: false, + }, + L1Block: { + address: '0x4200000000000000000000000000000000000015', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L2ToL1MessagePasser: { + address: '0x4200000000000000000000000000000000000016', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L2ERC721Bridge: { + address: '0x4200000000000000000000000000000000000014', + introduced: 'Legacy', + deprecated: false, + proxied: true, + }, + OptimismMintableERC721Factory: { + address: '0x4200000000000000000000000000000000000017', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + ProxyAdmin: { + address: '0x4200000000000000000000000000000000000018', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + BaseFeeVault: { + address: '0x4200000000000000000000000000000000000019', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, + L1FeeVault: { + address: '0x420000000000000000000000000000000000001a', + introduced: 'Bedrock', + deprecated: false, + proxied: true, + }, +} + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// abisByContractByNetwork +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + export const abis = { AddressManager: [ { @@ -5295,570 +8085,2905 @@ export const abis = { anonymous: false, inputs: [ { - name: '_name', - internalType: 'string', - type: 'string', + name: '_name', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + ], + AssetReceiver: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC20', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'id', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + CheckBalanceHigh: [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'params', + internalType: 'struct CheckBalanceHigh.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + ], + name: '_EventToExposeStructInABI__Params', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + ], + CheckBalanceLow: [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'params', + internalType: 'struct CheckBalanceLow.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + ], + name: '_EventToExposeStructInABI__Params', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + ], + CheckGelatoLow: [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'params', + internalType: 'struct CheckGelatoLow.Params', + type: 'tuple', + components: [ + { name: 'treasury', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + ], + indexed: false, + }, + ], + name: '_EventToExposeStructInABI__Params', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + ], + CheckTrue: [ + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + ], + Drippie: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, + ], + name: 'DripCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'executor', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DripExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, + ], + name: 'DripStatusUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC20', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'id', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + ], + name: 'create', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + ], + name: 'status', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + Drippie_goerli: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, + ], + name: 'DripCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'executor', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DripExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, + ], + name: 'DripStatusUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC20', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'id', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + ], + name: 'create', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + ], + name: 'status', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + 'Drippie_optimism-goerli': [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, + ], + name: 'DripCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'executor', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DripExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { + name: 'name', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, + ], + name: 'DripStatusUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'user', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC20', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'id', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + ], + name: 'create', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + ], + name: 'status', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + L1CrossDomainMessenger: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'message', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + ], + L1ERC721Bridge: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + L1StandardBridge: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_messenger', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', indexed: true, }, { - name: '_newAddress', + name: 'remoteToken', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, { - name: '_oldAddress', + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', internalType: 'address', type: 'address', indexed: false, }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'AddressSet', + name: 'ERC20BridgeFinalized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, - ], - name: 'OwnershipTransferred', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_name', internalType: 'string', type: 'string' }], - name: 'getAddress', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_address', internalType: 'address', type: 'address' }, - ], - name: 'setAddress', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - ], - L1CrossDomainMessenger: [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ { - name: '_portal', - internalType: 'contract OptimismPortal', + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, }, ], + name: 'ERC20BridgeInitiated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'l1Token', + internalType: 'address', + type: 'address', indexed: true, }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'FailedRelayedMessage', + name: 'ERC20DepositInitiated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'version', - internalType: 'uint8', - type: 'uint8', + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', indexed: false, }, ], - name: 'Initialized', + name: 'ERC20WithdrawalFinalized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'from', + internalType: 'address', + type: 'address', indexed: true, }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'RelayedMessage', + name: 'ETHBridgeFinalized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'target', + name: 'from', internalType: 'address', type: 'address', indexed: true, }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'sender', - internalType: 'address', - type: 'address', + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, { - name: 'message', + name: 'extraData', internalType: 'bytes', type: 'bytes', indexed: false, }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'messageNonce', + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, { - name: 'gasLimit', - internalType: 'uint256', - type: 'uint256', + name: 'extraData', + internalType: 'bytes', + type: 'bytes', indexed: false, }, ], - name: 'SentMessage', + name: 'ETHDepositInitiated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'sender', + name: 'from', internalType: 'address', type: 'address', indexed: true, }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'value', + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'SentMessageExtension1', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_CALLDATA_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'ETHWithdrawalFinalized', }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'OTHER_MESSENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'PORTAL', - outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], + name: 'bridgeETH', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'RELAY_CALL_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RELAY_CONSTANT_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RELAY_GAS_CHECK_BUFFER', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'RELAY_RESERVED_GAS', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], }, { - stateMutability: 'pure', + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_to', internalType: 'address', type: 'address' }, { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'baseGas', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'depositETHTo', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'failedMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'initialize', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_nonce', internalType: 'uint256', type: 'uint256' }, - { name: '_sender', internalType: 'address', type: 'address' }, - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'relayMessage', + name: 'finalizeERC20Withdrawal', outputs: [], }, { stateMutability: 'payable', type: 'function', inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'sendMessage', + name: 'finalizeETHWithdrawal', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'successfulMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'xDomainMessageSender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + { stateMutability: 'payable', type: 'receive' }, ], - L1ERC721Bridge: [ + L2OutputOracle: [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, + name: '_submissionInterval', + internalType: 'uint256', + type: 'uint256', }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, { - name: 'from', - internalType: 'address', - type: 'address', - indexed: true, + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', }, { - name: 'to', - internalType: 'address', - type: 'address', - indexed: false, + name: '_startingTimestamp', + internalType: 'uint256', + type: 'uint256', }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, { - name: 'tokenId', + name: '_finalizationPeriodSeconds', internalType: 'uint256', type: 'uint256', - indexed: false, }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'version', + internalType: 'uint8', + type: 'uint8', indexed: false, }, ], - name: 'ERC721BridgeFinalized', + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, { - name: 'remoteToken', - internalType: 'address', - type: 'address', + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', indexed: true, }, { - name: 'from', - internalType: 'address', - type: 'address', + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', indexed: true, }, { - name: 'to', - internalType: 'address', - type: 'address', + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', indexed: false, }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'tokenId', + name: 'prevNextOutputIndex', internalType: 'uint256', type: 'uint256', - indexed: false, + indexed: true, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, ], - name: 'ERC721BridgeInitiated', + name: 'OutputsDeleted', }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, ], - name: 'deposits', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, ], - name: 'finalizeBridgeERC721', + name: 'deleteL2Outputs', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'messenger', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', outputs: [ { name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], }, ], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - ], - L1StandardBridge: [ - { - stateMutability: 'nonpayable', - type: 'constructor', inputs: [ - { - name: '_messenger', - internalType: 'address payable', - type: 'address', - }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - type: 'event', - anonymous: false, + stateMutability: 'nonpayable', + type: 'function', inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'to', - internalType: 'address', - type: 'address', - indexed: false, - }, - { - name: 'amount', + name: '_startingBlockNumber', internalType: 'uint256', type: 'uint256', - indexed: false, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: '_startingTimestamp', + internalType: 'uint256', + type: 'uint256', }, ], - name: 'ERC20BridgeFinalized', + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + OptimismMintableERC20Factory: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], }, { type: 'event', @@ -5877,117 +11002,114 @@ export const abis = { indexed: true, }, { - name: 'from', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'to', + name: 'deployer', internalType: 'address', type: 'address', indexed: false, }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20BridgeInitiated', + name: 'OptimismMintableERC20Created', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'l2Token', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + OptimismPortal: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ { - name: 'from', - internalType: 'address', + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', type: 'address', - indexed: true, }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, { - name: 'to', - internalType: 'address', + name: '_config', + internalType: 'contract SystemConfig', type: 'address', - indexed: false, - }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'version', + internalType: 'uint8', + type: 'uint8', indexed: false, }, ], - name: 'ERC20DepositInitiated', + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'l2Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'to', + name: 'account', internalType: 'address', type: 'address', indexed: false, }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20WithdrawalFinalized', + name: 'Paused', }, { type: 'event', @@ -6001,76 +11123,57 @@ export const abis = { }, { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'amount', + name: 'version', internalType: 'uint256', type: 'uint256', - indexed: false, + indexed: true, }, { - name: 'extraData', + name: 'opaqueData', internalType: 'bytes', type: 'bytes', indexed: false, }, ], - name: 'ETHBridgeFinalized', + name: 'TransactionDeposited', }, { type: 'event', anonymous: false, inputs: [ { - name: 'from', + name: 'account', internalType: 'address', type: 'address', - indexed: true, - }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', indexed: false, }, ], - name: 'ETHBridgeInitiated', + name: 'Unpaused', }, { type: 'event', anonymous: false, inputs: [ { - name: 'from', - internalType: 'address', - type: 'address', + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, ], - name: 'ETHDepositInitiated', + name: 'WithdrawalFinalized', }, { type: 'event', anonymous: false, inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, { name: 'from', internalType: 'address', @@ -6078,198 +11181,196 @@ export const abis = { indexed: true, }, { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ETHWithdrawalFinalized', + name: 'WithdrawalProven', }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20', - outputs: [], + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, ], - name: 'bridgeERC20To', - outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, ], - name: 'bridgeETH', - outputs: [], }, { stateMutability: 'payable', type: 'function', inputs: [ { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, ], - name: 'bridgeETHTo', + name: 'depositTransaction', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositERC20', + inputs: [], + name: 'donateETH', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, ], - name: 'depositERC20To', + name: 'finalizeWithdrawalTransaction', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositETH', - outputs: [], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositETHTo', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, ], - name: 'deposits', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC20', - outputs: [], + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'payable', + stateMutability: 'pure', type: 'function', - inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, ], - name: 'finalizeBridgeETH', - outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeERC20Withdrawal', + inputs: [], + name: 'pause', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { + name: 'latestBlockhash', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, ], - name: 'finalizeETHWithdrawal', + name: 'proveWithdrawalTransaction', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'l2TokenBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], + name: 'unpause', + outputs: [], }, { stateMutability: 'view', @@ -6280,612 +11381,809 @@ export const abis = { }, { stateMutability: 'payable', type: 'receive' }, ], - L2OutputOracle: [ + PortalSender: [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ { - name: '_submissionInterval', - internalType: 'uint256', - type: 'uint256', - }, - { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, - { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: '_startingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - { name: '_proposer', internalType: 'address', type: 'address' }, - { name: '_challenger', internalType: 'address', type: 'address' }, - { - name: '_finalizationPeriodSeconds', - internalType: 'uint256', - type: 'uint256', + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', }, ], }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'version', - internalType: 'uint8', - type: 'uint8', - indexed: false, - }, + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, ], - name: 'Initialized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, + ], + ProxyAdmin: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ { - name: 'outputRoot', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - { - name: 'l2OutputIndex', - internalType: 'uint256', - type: 'uint256', + name: 'previousOwner', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'l2BlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'newOwner', + internalType: 'address', + type: 'address', indexed: true, }, - { - name: 'l1Timestamp', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, ], - name: 'OutputProposed', + name: 'OwnershipTransferred', }, { - type: 'event', - anonymous: false, + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', inputs: [ - { - name: 'prevNextOutputIndex', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - { - name: 'newNextOutputIndex', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, ], - name: 'OutputsDeleted', + name: 'changeProxyAdmin', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'CHALLENGER', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'FINALIZATION_PERIOD_SECONDS', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'L2_BLOCK_TIME', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'PROPOSER', + name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', inputs: [], - name: 'SUBMISSION_INTERVAL', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'renounceOwnership', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, ], - name: 'computeL2Timestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'setAddress', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, ], - name: 'deleteL2Outputs', + name: 'setAddressManager', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, ], - name: 'getL2Output', - outputs: [ + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, { - name: '', - internalType: 'struct Types.OutputProposal', - type: 'tuple', - components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, - ], + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', }, ], + name: 'setProxyType', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, ], - name: 'getL2OutputAfter', - outputs: [ + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, + ], + SystemConfig: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, { - name: '', - internalType: 'struct Types.OutputProposal', + name: '_unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', type: 'tuple', components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, ], }, ], }, { - stateMutability: 'view', - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'getL2OutputIndexAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', }, { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: '_startingTimestamp', - internalType: 'uint256', - type: 'uint256', + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, }, ], - name: 'initialize', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'latestBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'latestOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'nextBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'nextOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: '_unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, ], - name: 'proposeL2Output', + name: 'initialize', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'startingBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'startingTimestamp', + name: 'overhead', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, - ], - OptimismMintableERC20Factory: [ { stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'deployer', - internalType: 'address', - type: 'address', - indexed: false, - }, - ], - name: 'OptimismMintableERC20Created', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], }, ], - name: 'StandardL2TokenCreated', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'createOptimismMintableERC20', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'setBatcherHash', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, ], - name: 'createStandardL2Token', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'setGasConfig', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], }, - ], - OptimismPortal: [ { stateMutability: 'nonpayable', - type: 'constructor', + type: 'function', inputs: [ - { - name: '_l2Oracle', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { name: '_guardian', internalType: 'address', type: 'address' }, - { name: '_paused', internalType: 'bool', type: 'bool' }, { name: '_config', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'version', - internalType: 'uint8', - type: 'uint8', - indexed: false, + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], }, ], - name: 'Initialized', + name: 'setResourceConfig', + outputs: [], }, { - type: 'event', - anonymous: false, + stateMutability: 'nonpayable', + type: 'function', inputs: [ { - name: 'account', + name: '_unsafeBlockSigner', internalType: 'address', type: 'address', - indexed: false, }, ], - name: 'Paused', + name: 'setUnsafeBlockSigner', + outputs: [], }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'version', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - { - name: 'opaqueData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'TransactionDeposited', + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'account', - internalType: 'address', - type: 'address', - indexed: false, - }, - ], - name: 'Unpaused', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + ], + SystemDictator: [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, }, - { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, ], - name: 'WithdrawalFinalized', + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'previousOwner', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'from', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, ], - name: 'WithdrawalProven', + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'GUARDIAN', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'L2_ORACLE', - outputs: [ - { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, - ], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'SYSTEM_CONFIG', + name: 'config', outputs: [ - { name: '', internalType: 'contract SystemConfig', type: 'address' }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_isCreation', internalType: 'bool', type: 'bool' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositTransaction', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [], - name: 'donateETH', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', type: 'tuple', components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, ], }, ], - name: 'finalizeWithdrawalTransaction', - outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'finalizedWithdrawals', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], - name: 'initialize', - outputs: [], + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - ], - name: 'isOutputFinalized', + inputs: [], + name: 'dynamicConfigSet', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'l2Sender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'pure', - type: 'function', - inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'exit1', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'params', - outputs: [ - { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, - { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, - { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, - ], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'pause', + name: 'finalize', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'paused', + name: 'finalized', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { @@ -6893,171 +12191,220 @@ export const abis = { type: 'function', inputs: [ { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', - type: 'tuple', - components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - }, - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - { - name: '_outputRootProof', - internalType: 'struct Types.OutputRootProof', + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', type: 'tuple', components: [ - { name: 'version', internalType: 'bytes32', type: 'bytes32' }, - { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, { - name: 'messagePasserStorageRoot', - internalType: 'bytes32', - type: 'bytes32', + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { + name: 'controller', + internalType: 'address', + type: 'address', + }, + { + name: 'finalOwner', + internalType: 'address', + type: 'address', + }, + ], }, { - name: 'latestBlockhash', - internalType: 'bytes32', - type: 'bytes32', + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { + name: 'batcherHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], }, ], }, - { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, - ], - name: 'proveWithdrawalTransaction', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'provenWithdrawals', - outputs: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'unpause', + name: 'initialize', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { stateMutability: 'payable', type: 'receive' }, - ], - PortalSender: [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_portal', - internalType: 'contract OptimismPortal', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PORTAL', + name: 'l2OutputOracleDynamicConfig', outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'donate', - outputs: [], - }, - ], - ProxyAdmin: [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], - }, - { - type: 'event', - anonymous: false, - inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', }, { - name: 'newOwner', - internalType: 'address', - type: 'address', - indexed: true, + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', }, ], - name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'addressManager', - outputs: [ - { name: '', internalType: 'contract AddressManager', type: 'address' }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_newAdmin', internalType: 'address', type: 'address' }, - ], - name: 'changeProxyAdmin', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - ], - name: 'getProxyAdmin', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], - name: 'getProxyImplementation', + name: 'oldL1CrossDomainMessenger', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'implementationName', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'isUpgrading', + name: 'optimismPortalDynamicConfig', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { @@ -7067,171 +12414,101 @@ export const abis = { name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'proxyType', - outputs: [ - { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, - ], - }, { stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'renounceOwnership', + name: 'phase1', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_address', internalType: 'address', type: 'address' }, - ], - name: 'setAddress', + inputs: [], + name: 'phase2', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { - name: '_address', - internalType: 'contract AddressManager', - type: 'address', - }, - ], - name: 'setAddressManager', + inputs: [], + name: 'renounceOwnership', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - ], - name: 'setImplementationName', + inputs: [], + name: 'step1', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { - name: '_type', - internalType: 'enum ProxyAdmin.ProxyType', - type: 'uint8', - }, - ], - name: 'setProxyType', + inputs: [], + name: 'step2', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], - name: 'setUpgrading', + inputs: [], + name: 'step3', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'step4', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, - ], - name: 'upgrade', + inputs: [], + name: 'step5', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, - ], - name: 'upgradeAndCall', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', outputs: [], }, - ], - SystemConfig: [ { stateMutability: 'nonpayable', - type: 'constructor', + type: 'function', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: '_unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', type: 'tuple', components: [ { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', }, ], }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'version', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, { - name: 'updateType', - internalType: 'enum SystemConfig.UpdateType', - type: 'uint8', - indexed: true, + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'ConfigUpdate', + name: 'updateDynamicConfig', + outputs: [], }, + ], + SystemDictator_goerli: [ { type: 'event', anonymous: false, @@ -7268,63 +12545,329 @@ export const abis = { stateMutability: 'view', type: 'function', inputs: [], - name: 'UNSAFE_BLOCK_SIGNER_SLOT', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'batcherHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'gasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: '_unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, { name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', + internalType: 'struct SystemDictator.DeployConfig', type: 'tuple', components: [ { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { + name: 'controller', + internalType: 'address', + type: 'address', + }, + { + name: 'finalOwner', + internalType: 'address', + type: 'address', + }, + ], }, { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], }, { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { + name: 'batcherHash', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], }, ], }, @@ -7336,15 +12879,26 @@ export const abis = { stateMutability: 'view', type: 'function', inputs: [], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'overhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', @@ -7361,73 +12915,52 @@ export const abis = { outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'resourceConfig', - outputs: [ - { - name: '', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], + name: 'step1', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'scalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'step2', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'setBatcherHash', + inputs: [], + name: 'step3', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - ], - name: 'setGasConfig', + inputs: [], + name: 'step4', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], - name: 'setGasLimit', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', outputs: [], }, { @@ -7435,615 +12968,634 @@ export const abis = { type: 'function', inputs: [ { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', type: 'tuple', components: [ { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', }, ], }, ], - name: 'setResourceConfig', + name: 'updateL2OutputOracleDynamicConfig', outputs: [], }, + ], + TeleportrWithdrawer: [ { stateMutability: 'nonpayable', - type: 'function', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ { - name: '_unsafeBlockSigner', + name: 'user', internalType: 'address', - type: 'address', - }, - ], - name: 'setUnsafeBlockSigner', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'unsafeBlockSigner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', }, - ], - SystemDictator: [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { type: 'event', anonymous: false, inputs: [ { - name: 'version', - internalType: 'uint8', - type: 'uint8', + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, ], - name: 'Initialized', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', internalType: 'address', type: 'address', indexed: true, }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'OwnershipTransferred', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'WithdrewERC20', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'config', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], + name: 'id', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'data', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'exit1', + name: 'recipient', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'setData', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'exited', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'finalize', + inputs: [ + { name: '_recipient', internalType: 'address', type: 'address' }, + ], + name: 'setRecipient', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_teleportr', internalType: 'address', type: 'address' }, + ], + name: 'setTeleportr', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'teleportr', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { - name: 'controller', - internalType: 'address', - type: 'address', - }, - { - name: 'finalOwner', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { - name: 'batcherHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], - }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdrawFromTeleportr', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, + ], + AttestationStation: [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'about', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'key', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'AttestationCreated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_attestations', + internalType: 'struct AttestationStation.AttestationData[]', + type: 'tuple[]', + components: [ + { name: 'about', internalType: 'address', type: 'address' }, + { name: 'key', internalType: 'bytes32', type: 'bytes32' }, + { name: 'val', internalType: 'bytes', type: 'bytes' }, ], }, ], - name: 'initialize', + name: 'attest', outputs: [], }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_about', internalType: 'address', type: 'address' }, + { name: '_key', internalType: 'bytes32', type: 'bytes32' }, + { name: '_val', internalType: 'bytes', type: 'bytes' }, + ], + name: 'attest', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'attestations', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l2OutputOracleDynamicConfig', - outputs: [ + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + L2ERC721Bridge: [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'l2OutputOracleStartingBlockNumber', + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', internalType: 'uint256', type: 'uint256', + indexed: false, }, { - name: 'l2OutputOracleStartingTimestamp', + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'to', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'tokenId', internalType: 'uint256', type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, }, ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'oldL1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'optimismPortalDynamicConfig', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + ], + MintManager: [ { stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', type: 'function', inputs: [], - name: 'phase1', - outputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'phase2', - outputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'step1', - outputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step2', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'step3', - outputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'step4', - outputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'step5', + name: 'renounceOwnership', outputs: [], }, { @@ -8057,415 +13609,273 @@ export const abis = { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], - }, - { - name: '_optimismPortalDynamicConfig', - internalType: 'bool', - type: 'bool', - }, + { name: '_newMintManager', internalType: 'address', type: 'address' }, ], - name: 'updateDynamicConfig', + name: 'upgrade', outputs: [], }, ], - SystemDictator_goerli: [ + OptimismMintableERC721Factory: [ { - type: 'event', - anonymous: false, + stateMutability: 'nonpayable', + type: 'constructor', inputs: [ - { - name: 'version', - internalType: 'uint8', - type: 'uint8', - indexed: false, - }, + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, ], - name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'OptimismMintableERC721Created', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'config', - outputs: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + 'OptimismMintableERC721Factory_optimism-goerli': [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - ], + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, }, ], + name: 'OptimismMintableERC721Created', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'exit1', - outputs: [], + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [], - name: 'finalize', - outputs: [], + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + ], + Optimist: [ { stateMutability: 'nonpayable', - type: 'function', + type: 'constructor', inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + { name: '_baseURIAttestor', internalType: 'address', type: 'address' }, { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { - name: 'controller', - internalType: 'address', - type: 'address', - }, - { - name: 'finalOwner', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { - name: 'batcherHash', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - ], - }, - ], + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { + name: '_optimistAllowlist', + internalType: 'contract OptimistAllowlist', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'bool', + type: 'bool', + indexed: false, + }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, }, ], - name: 'initialize', - outputs: [], + name: 'Transfer', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l2OutputOracleDynamicConfig', + name: 'ATTESTATION_STATION', outputs: [ { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', + name: '', + internalType: 'contract AttestationStation', + type: 'address', }, ], }, @@ -8473,342 +13883,445 @@ export const abis = { stateMutability: 'view', type: 'function', inputs: [], - name: 'oldL1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'BASE_URI_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'BASE_URI_ATTESTOR', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', + name: 'OPTIMIST_ALLOWLIST', + outputs: [ + { + name: '', + internalType: 'contract OptimistAllowlist', + type: 'address', + }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', type: 'function', inputs: [], - name: 'step1', - outputs: [], + name: 'baseURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step2', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'burn', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step3', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'initialize', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_recipient', internalType: 'address', type: 'address' }, + ], + name: 'isOnAllowList', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step4', + inputs: [ + { name: '_recipient', internalType: 'address', type: 'address' }, + ], + name: 'mint', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'step5', - outputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step6', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], - }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, ], - name: 'updateL2OutputOracleDynamicConfig', + name: 'setApprovalForAll', outputs: [], }, - ], - MintManager: [ + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + name: 'tokenIdOfAddress', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, { stateMutability: 'nonpayable', - type: 'constructor', + type: 'function', inputs: [ - { name: '_upgrader', internalType: 'address', type: 'address' }, - { name: '_governanceToken', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, ], + name: 'transferFrom', + outputs: [], }, { - type: 'event', - anonymous: false, + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + ], + OptimistAllowlist: [ + { + stateMutability: 'nonpayable', + type: 'constructor', inputs: [ { - name: 'previousOwner', + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { + name: '_allowlistAttestor', internalType: 'address', type: 'address', - indexed: true, }, { - name: 'newOwner', + name: '_coinbaseQuestAttestor', internalType: 'address', type: 'address', - indexed: true, }, + { name: '_optimistInviter', internalType: 'address', type: 'address' }, ], - name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'DENOMINATOR', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'ALLOWLIST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_CAP', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_PERIOD', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'COINBASE_QUEST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'governanceToken', - outputs: [ - { name: '', internalType: 'contract GovernanceToken', type: 'address' }, - ], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_account', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - ], - name: 'mint', - outputs: [], + name: 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'mintPermittedAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'OPTIMIST_INVITER', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], + inputs: [{ name: '_claimer', internalType: 'address', type: 'address' }], + name: 'isAllowedToMint', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + ], + OptimistInviter: [ { stateMutability: 'nonpayable', - type: 'function', + type: 'constructor', inputs: [ - { name: '_newMintManager', internalType: 'address', type: 'address' }, + { name: '_inviteGranter', internalType: 'address', type: 'address' }, + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, ], - name: 'upgrade', - outputs: [], }, - ], - OptimismMintableERC721Factory: [ { - stateMutability: 'nonpayable', - type: 'constructor', + type: 'event', + anonymous: false, inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + { + name: 'version', + internalType: 'uint8', + type: 'uint8', + indexed: false, + }, ], + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', + name: 'issuer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'remoteToken', + name: 'claimer', internalType: 'address', type: 'address', indexed: true, }, + ], + name: 'InviteClaimed', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ { - name: 'deployer', - internalType: 'address', + name: '', + internalType: 'contract AttestationStation', type: 'address', - indexed: false, }, ], - name: 'OptimismMintableERC721Created', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'bridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'CAN_INVITE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, - ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'CLAIMABLE_INVITE_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'EIP712_VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'remoteChainId', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'INVITE_GRANTER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'MIN_COMMITMENT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, - ], - 'OptimismMintableERC721Factory_optimism-goerli': [ { stateMutability: 'nonpayable', - type: 'constructor', + type: 'function', inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + { name: '_claimer', internalType: 'address', type: 'address' }, + { + name: '_claimableInvite', + internalType: 'struct OptimistInviter.ClaimableInvite', + type: 'tuple', + components: [ + { name: 'issuer', internalType: 'address', type: 'address' }, + { name: 'nonce', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_signature', internalType: 'bytes', type: 'bytes' }, ], + name: 'claimInvite', + outputs: [], }, { - type: 'event', - anonymous: false, + stateMutability: 'nonpayable', + type: 'function', inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'deployer', - internalType: 'address', - type: 'address', - indexed: false, - }, + { name: '_commitment', internalType: 'bytes32', type: 'bytes32' }, ], - name: 'OptimismMintableERC721Created', + name: 'commitInvite', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'commitmentTimestamps', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'initialize', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'REMOTE_CHAIN_ID', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'inviteCounts', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + { name: '_accounts', internalType: 'address[]', type: 'address[]' }, + { name: '_inviteCount', internalType: 'uint256', type: 'uint256' }, ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'setInviteCounts', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'usedNonces', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { @@ -9369,170 +14882,6 @@ export const abis = { outputs: [{ name: '', internalType: 'address', type: 'address' }], }, ], - L2ERC721Bridge: [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'to', - internalType: 'address', - type: 'address', - indexed: false, - }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'to', - internalType: 'address', - type: 'address', - indexed: false, - }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC721', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - ], L2StandardBridge: [ { stateMutability: 'nonpayable', diff --git a/packages/contracts-ts/src/react.ts b/packages/contracts-ts/src/react.ts index 0aafff080890..171b7c08d2ec 100644 --- a/packages/contracts-ts/src/react.ts +++ b/packages/contracts-ts/src/react.ts @@ -1,4 +1,4 @@ -// Generated by @wagmi/cli@1.3.0 on 7/13/2023 at 5:05:38 PM +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:40:03 PM import { useNetwork, useContractRead, @@ -126,1634 +126,1755 @@ export const addressManagerConfig = { } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1CrossDomainMessenger +// AssetReceiver ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) */ -export const l1CrossDomainMessengerABI = [ +export const assetReceiverABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [ - { - name: '_portal', - internalType: 'contract OptimismPortal', - type: 'address', - }, - ], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'newOwner', + internalType: 'address', + type: 'address', indexed: true, }, ], - name: 'FailedRelayedMessage', + name: 'OwnerUpdated', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'Initialized', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', indexed: true, }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'RelayedMessage', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'target', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'sender', + name: 'recipient', internalType: 'address', type: 'address', - indexed: false, - }, - { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'messageNonce', - internalType: 'uint256', - type: 'uint256', - indexed: false, + indexed: true, }, { - name: 'gasLimit', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'SentMessage', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ { - name: 'sender', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'value', + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, ], - name: 'SentMessageExtension1', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_CALLDATA_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'OTHER_MESSENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'WithdrewETH', }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'PORTAL', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RELAY_CALL_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'RELAY_CONSTANT_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_GAS_CHECK_BUFFER', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RELAY_RESERVED_GAS', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'pure', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'baseGas', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'failedMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'withdrawERC20', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'initialize', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_nonce', internalType: 'uint256', type: 'uint256' }, - { name: '_sender', internalType: 'address', type: 'address' }, - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], - name: 'relayMessage', + name: 'withdrawERC721', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'sendMessage', + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'successfulMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverAddress = { + 1: '0x15DdA60616Ffca20371ED1659dBB78E888f65556', + 10: '0x15DdA60616Ffca20371ED1659dBB78E888f65556', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverConfig = { + address: assetReceiverAddress, + abi: assetReceiverABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckBalanceHigh +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export const checkBalanceHighABI = [ { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'params', + internalType: 'struct CheckBalanceHigh.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + ], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'xDomainMessageSender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) */ -export const l1CrossDomainMessengerAddress = { - 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', - 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +export const checkBalanceHighAddress = { + 1: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 5: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 420: '0x5d7103853f12109A7d27F118e54BbC654ad847E9', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) */ -export const l1CrossDomainMessengerConfig = { - address: l1CrossDomainMessengerAddress, - abi: l1CrossDomainMessengerABI, +export const checkBalanceHighConfig = { + address: checkBalanceHighAddress, + abi: checkBalanceHighABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1ERC721Bridge +// CheckBalanceLow ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) */ -export const l1Erc721BridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeFinalized', - }, +export const checkBalanceLowABI = [ { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'params', + internalType: 'struct CheckBalanceLow.Params', + type: 'tuple', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + ], indexed: false, }, ], - name: 'ERC721BridgeInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'uint256', type: 'uint256' }, - ], - name: 'deposits', + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export const checkBalanceLowAddress = { + 1: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + 5: '0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640', + 420: '0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export const checkBalanceLowConfig = { + address: checkBalanceLowAddress, + abi: checkBalanceLowABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckGelatoLow +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowABI = [ { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC721', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messenger', - outputs: [ { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', + name: 'params', + internalType: 'struct CheckGelatoLow.Params', + type: 'tuple', + components: [ + { name: 'treasury', internalType: 'address', type: 'address' }, + { name: 'threshold', internalType: 'uint256', type: 'uint256' }, + { name: 'recipient', internalType: 'address', type: 'address' }, + ], + indexed: false, }, ], + name: '_EventToExposeStructInABI__Params', }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '_params', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowAddress = { + 1: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + 5: '0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa', + 420: '0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export const checkGelatoLowConfig = { + address: checkGelatoLowAddress, + abi: checkGelatoLowABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckTrue +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) + */ +export const checkTrueABI = [ { - stateMutability: 'view', + stateMutability: 'pure', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'check', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) */ -export const l1Erc721BridgeAddress = { - 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', - 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +export const checkTrueAddress = { + 1: '0x5c741a38cb11424711231777D71689C458eE835D', + 5: '0x5c741a38cb11424711231777D71689C458eE835D', + 420: '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) */ -export const l1Erc721BridgeConfig = { - address: l1Erc721BridgeAddress, - abi: l1Erc721BridgeABI, +export const checkTrueConfig = { + address: checkTrueAddress, + abi: checkTrueABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1StandardBridge +// Drippie ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeABI = [ +export const drippieABI = [ { stateMutability: 'nonpayable', type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ - { name: '_messenger', internalType: 'address payable', type: 'address' }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, ], + name: 'DripCreated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'remoteToken', + name: 'executor', internalType: 'address', type: 'address', - indexed: true, + indexed: false, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', + name: 'timestamp', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20BridgeFinalized', + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'remoteToken', + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, + ], + name: 'DripStatusUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ERC20BridgeInitiated', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'l2Token', + name: 'recipient', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, ], - name: 'ERC20DepositInitiated', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'l1Token', + name: 'withdrawer', internalType: 'address', type: 'address', indexed: true, }, { - name: 'l2Token', + name: 'recipient', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'ERC20WithdrawalFinalized', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, }, - ], - name: 'ETHBridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, ], - name: 'ETHBridgeInitiated', + name: 'WithdrewETH', }, { - type: 'event', - anonymous: false, + stateMutability: 'payable', + type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'ETHDepositInitiated', }, { - type: 'event', - anonymous: false, + stateMutability: 'payable', + type: 'function', inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'ETHWithdrawalFinalized', }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, ], - name: 'bridgeERC20', + name: 'create', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20To', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], - name: 'bridgeETH', - outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETHTo', - outputs: [], + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositERC20', - outputs: [], + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'depositERC20To', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, ], - name: 'depositETH', + name: 'status', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, ], - name: 'depositETHTo', + name: 'withdrawERC20', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - ], - name: 'deposits', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeBridgeERC20', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], - name: 'finalizeBridgeETH', + name: 'withdrawERC721', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address payable', type: 'address' }, { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeERC20Withdrawal', + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeETHWithdrawal', + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l2TokenBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeAddress = { - 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', - 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +export const drippieAddress = { + 1: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l1StandardBridgeConfig = { - address: l1StandardBridgeAddress, - abi: l1StandardBridgeABI, +export const drippieConfig = { + address: drippieAddress, + abi: drippieABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2OutputOracle +// Drippie_goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleABI = [ +export const drippieGoerliABI = [ { stateMutability: 'nonpayable', type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ - { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, - { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, }, - { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, - { name: '_proposer', internalType: 'address', type: 'address' }, - { name: '_challenger', internalType: 'address', type: 'address' }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: '_finalizationPeriodSeconds', + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + indexed: false, + }, + ], + name: 'DripCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'executor', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'timestamp', internalType: 'uint256', type: 'uint256', + indexed: false, }, ], + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, ], - name: 'Initialized', + name: 'DripStatusUpdated', }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'outputRoot', - internalType: 'bytes32', - type: 'bytes32', + name: 'newOwner', + internalType: 'address', + type: 'address', indexed: true, }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, { - name: 'l2OutputIndex', + name: 'amount', internalType: 'uint256', type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'l2BlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'recipient', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'l1Timestamp', + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false, }, ], - name: 'OutputProposed', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'prevNextOutputIndex', - internalType: 'uint256', - type: 'uint256', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'newNextOutputIndex', - internalType: 'uint256', - type: 'uint256', + name: 'recipient', + internalType: 'address', + type: 'address', indexed: true, }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'OutputsDeleted', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'CHALLENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'FINALIZATION_PERIOD_SECONDS', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'L2_BLOCK_TIME', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PROPOSER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'WithdrewERC721', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'SUBMISSION_INTERVAL', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'computeL2Timestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'deleteL2Outputs', - outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2Output', - outputs: [ + { name: '_name', internalType: 'string', type: 'string' }, { - name: '', - internalType: 'struct Types.OutputProposal', + name: '_config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, ], + name: 'create', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2OutputAfter', + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', outputs: [ { - name: '', - internalType: 'struct Types.OutputProposal', + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + { name: 'reentrant', internalType: 'bool', type: 'bool' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getL2OutputIndexAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { - name: '_startingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, - ], - name: 'initialize', - outputs: [], + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'latestBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'latestOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'nextBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + ], + name: 'status', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'nextOutputIndex', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, - { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, ], - name: 'proposeL2Output', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'startingBlockNumber', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'startingTimestamp', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleAddress = { - 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', - 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +export const drippieGoerliAddress = { + 5: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) */ -export const l2OutputOracleConfig = { - address: l2OutputOracleAddress, - abi: l2OutputOracleABI, +export const drippieGoerliConfig = { + address: drippieGoerliAddress, + abi: drippieGoerliABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC20Factory +// Drippie_optimism-goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismMintableErc20FactoryABI = [ +export const drippieOptimismGoerliABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'deployer', - internalType: 'address', - type: 'address', + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], indexed: false, }, ], - name: 'OptimismMintableERC20Created', + name: 'DripCreated', }, { type: 'event', anonymous: false, inputs: [ { - name: 'remoteToken', - internalType: 'address', - type: 'address', + name: 'nameref', + internalType: 'string', + type: 'string', indexed: true, }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, { - name: 'localToken', + name: 'executor', internalType: 'address', type: 'address', - indexed: true, - }, - ], - name: 'StandardL2TokenCreated', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, - ], - name: 'createOptimismMintableERC20', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, - ], - name: 'createStandardL2Token', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, -] as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) - */ -export const optimismMintableErc20FactoryAddress = { - 1: '0x4200000000000000000000000000000000000012', - 5: '0x4200000000000000000000000000000000000012', - 420: '0x4200000000000000000000000000000000000012', -} as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) - */ -export const optimismMintableErc20FactoryConfig = { - address: optimismMintableErc20FactoryAddress, - abi: optimismMintableErc20FactoryABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismPortal -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) - */ -export const optimismPortalABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_l2Oracle', - internalType: 'contract L2OutputOracle', - type: 'address', + indexed: false, }, - { name: '_guardian', internalType: 'address', type: 'address' }, - { name: '_paused', internalType: 'bool', type: 'bool' }, { - name: '_config', - internalType: 'contract SystemConfig', - type: 'address', + name: 'timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], + name: 'DripExecuted', }, { type: 'event', anonymous: false, inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { + name: 'nameref', + internalType: 'string', + type: 'string', + indexed: true, + }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + indexed: false, + }, ], - name: 'Initialized', + name: 'DripStatusUpdated', }, { type: 'event', anonymous: false, inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, { - name: 'account', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Paused', + name: 'OwnerUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, { - name: 'version', + name: 'amount', internalType: 'uint256', type: 'uint256', - indexed: true, - }, - { - name: 'opaqueData', - internalType: 'bytes', - type: 'bytes', indexed: false, }, ], - name: 'TransactionDeposited', + name: 'ReceivedETH', }, { type: 'event', anonymous: false, inputs: [ { - name: 'account', + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', internalType: 'address', type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', indexed: false, }, ], - name: 'Unpaused', + name: 'WithdrewERC20', }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, ], - name: 'WithdrawalFinalized', + name: 'WithdrewERC721', }, { type: 'event', anonymous: false, inputs: [ { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'withdrawer', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'WithdrawalProven', + name: 'WithdrewETH', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'GUARDIAN', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'L2_ORACLE', - outputs: [ - { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'SYSTEM_CONFIG', + name: 'CALL', outputs: [ - { name: '', internalType: 'contract SystemConfig', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], }, { stateMutability: 'payable', type: 'function', inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_target', internalType: 'address', type: 'address' }, { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, ], - name: 'depositTransaction', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [], - name: 'donateETH', - outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', + name: '_config', + internalType: 'struct Drippie.DripConfig', type: 'tuple', components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, ], }, ], - name: 'finalizeWithdrawalTransaction', + name: 'create', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'finalizedWithdrawals', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], - name: 'initialize', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'drip', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'drips', + outputs: [ + { + name: 'status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, + { + name: 'config', + internalType: 'struct Drippie.DripConfig', + type: 'tuple', + components: [ + { name: 'interval', internalType: 'uint256', type: 'uint256' }, + { + name: 'dripcheck', + internalType: 'contract IDripCheck', + type: 'address', + }, + { name: 'checkparams', internalType: 'bytes', type: 'bytes' }, + { + name: 'actions', + internalType: 'struct Drippie.DripAction[]', + type: 'tuple[]', + components: [ + { + name: 'target', + internalType: 'address payable', + type: 'address', + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + }, + { name: 'last', internalType: 'uint256', type: 'uint256' }, + { name: 'count', internalType: 'uint256', type: 'uint256' }, ], - name: 'isOutputFinalized', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'executable', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l2Sender', + name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'pure', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'params', - outputs: [ - { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, - { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, - { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { + name: '_status', + internalType: 'enum Drippie.DripStatus', + type: 'uint8', + }, ], + name: 'status', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'pause', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', outputs: [], }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'paused', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_tx', - internalType: 'struct Types.WithdrawalTransaction', - type: 'tuple', - components: [ - { name: 'nonce', internalType: 'uint256', type: 'uint256' }, - { name: 'sender', internalType: 'address', type: 'address' }, - { name: 'target', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - }, - { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, - { - name: '_outputRootProof', - internalType: 'struct Types.OutputRootProof', - type: 'tuple', - components: [ - { name: 'version', internalType: 'bytes32', type: 'bytes32' }, - { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, - { - name: 'messagePasserStorageRoot', - internalType: 'bytes32', - type: 'bytes32', - }, - { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, - ], - }, - { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, ], - name: 'proveWithdrawalTransaction', + name: 'withdrawERC20', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'provenWithdrawals', - outputs: [ - { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, - { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, - { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, ], + name: 'withdrawERC721', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'unpause', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], }, { stateMutability: 'payable', type: 'receive' }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismPortalAddress = { - 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', - 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +export const drippieOptimismGoerliAddress = { + 420: '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) */ -export const optimismPortalConfig = { - address: optimismPortalAddress, - abi: optimismPortalABI, +export const drippieOptimismGoerliConfig = { + address: drippieOptimismGoerliAddress, + abi: drippieOptimismGoerliABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// PortalSender +// L1CrossDomainMessenger ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const portalSenderABI = [ +export const l1CrossDomainMessengerABI = [ { stateMutability: 'nonpayable', type: 'constructor', @@ -1766,288 +1887,274 @@ export const portalSenderABI = [ ], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PORTAL', - outputs: [ - { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, ], + name: 'FailedRelayedMessage', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'donate', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, -] as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) - */ -export const portalSenderAddress = { - 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', - 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', -} as const - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) - */ -export const portalSenderConfig = { - address: portalSenderAddress, - abi: portalSenderABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// ProxyAdmin -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) - */ -export const proxyAdminABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'target', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'sender', internalType: 'address', type: 'address', - indexed: true, + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, ], - name: 'OwnershipTransferred', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'addressManager', - outputs: [ - { name: '', internalType: 'contract AddressManager', type: 'address' }, - ], + name: 'SentMessage', }, { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_newAdmin', internalType: 'address', type: 'address' }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'changeProxyAdmin', - outputs: [], + name: 'SentMessageExtension1', }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - ], - name: 'getProxyAdmin', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], - name: 'getProxyImplementation', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'implementationName', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'isUpgrading', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'OTHER_MESSENGER', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'proxyType', + inputs: [], + name: 'PORTAL', outputs: [ - { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, ], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_address', internalType: 'address', type: 'address' }, - ], - name: 'setAddress', - outputs: [], + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { - name: '_address', - internalType: 'contract AddressManager', - type: 'address', - }, - ], - name: 'setAddressManager', - outputs: [], + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - ], - name: 'setImplementationName', - outputs: [], + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'pure', type: 'function', inputs: [ - { name: '_address', internalType: 'address', type: 'address' }, - { - name: '_type', - internalType: 'enum ProxyAdmin.ProxyType', - type: 'uint8', - }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, ], - name: 'setProxyType', - outputs: [], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], - name: 'setUpgrading', - outputs: [], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'initialize', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', type: 'function', inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, ], - name: 'upgrade', + name: 'relayMessage', outputs: [], }, { stateMutability: 'payable', type: 'function', inputs: [ - { name: '_proxy', internalType: 'address payable', type: 'address' }, - { name: '_implementation', internalType: 'address', type: 'address' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, ], - name: 'upgradeAndCall', + name: 'sendMessage', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const proxyAdminAddress = { - 1: '0x4200000000000000000000000000000000000018', - 5: '0x4200000000000000000000000000000000000018', +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) */ -export const proxyAdminConfig = { - address: proxyAdminAddress, - abi: proxyAdminABI, +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemConfig +// L1ERC721Bridge ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigABI = [ +export const l1Erc721BridgeABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, ], }, { @@ -2055,244 +2162,137 @@ export const systemConfigABI = [ anonymous: false, inputs: [ { - name: 'version', - internalType: 'uint256', - type: 'uint256', + name: 'localToken', + internalType: 'address', + type: 'address', indexed: true, }, { - name: 'updateType', - internalType: 'enum SystemConfig.UpdateType', - type: 'uint8', + name: 'remoteToken', + internalType: 'address', + type: 'address', indexed: true, }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, - ], - name: 'ConfigUpdate', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'Initialized', + name: 'ERC721BridgeFinalized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'ERC721BridgeInitiated', }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'UNSAFE_BLOCK_SIGNER_SLOT', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'batcherHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'gasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_owner', internalType: 'address', type: 'address' }, - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'initialize', + name: 'finalizeBridgeERC721', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'minimumGasLimit', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'overhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'resourceConfig', - outputs: [ - { - name: '', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'scalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - ], - name: 'setBatcherHash', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_overhead', internalType: 'uint256', type: 'uint256' }, - { name: '_scalar', internalType: 'uint256', type: 'uint256' }, - ], - name: 'setGasConfig', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], - name: 'setGasLimit', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { - name: '_config', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, - { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, - { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, - ], - }, - ], - name: 'setResourceConfig', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, - ], - name: 'setUnsafeBlockSigner', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'unsafeBlockSigner', + name: 'otherBridge', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { @@ -2305,619 +2305,491 @@ export const systemConfigABI = [ ] as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigAddress = { - 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', - 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', } as const /** - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const systemConfigConfig = { - address: systemConfigAddress, - abi: systemConfigABI, +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemDictator +// L1StandardBridge ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, +export const l1StandardBridgeABI = [ { - type: 'event', - anonymous: false, + stateMutability: 'nonpayable', + type: 'constructor', inputs: [ - { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: '_messenger', internalType: 'address payable', type: 'address' }, ], - name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'localToken', internalType: 'address', type: 'address', indexed: true, }, { - name: 'newOwner', + name: 'remoteToken', internalType: 'address', type: 'address', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'ERC20BridgeFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'config', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, }, { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, }, ], + name: 'ERC20WithdrawalFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'exit1', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'exited', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'finalize', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - { - name: 'resourceConfig', - internalType: 'struct ResourceMetering.ResourceConfig', - type: 'tuple', - components: [ - { - name: 'maxResourceLimit', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'elasticityMultiplier', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'baseFeeMaxChangeDenominator', - internalType: 'uint8', - type: 'uint8', - }, - { - name: 'minimumBaseFee', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'systemTxMaxGas', - internalType: 'uint32', - type: 'uint32', - }, - { - name: 'maximumBaseFee', - internalType: 'uint128', - type: 'uint128', - }, - ], - }, - ], - }, - ], - }, + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'initialize', + name: 'bridgeERC20To', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'l2OutputOracleDynamicConfig', - outputs: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], + name: 'bridgeETH', + outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'oldL1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'optimismPortalDynamicConfig', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'owner', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'phase1', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'phase2', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'renounceOwnership', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'step1', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [], - name: 'step2', - outputs: [], + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step3', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'step4', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', outputs: [], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'step5', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', outputs: [], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', - inputs: [ - { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], - }, + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ { - name: '_optimismPortalDynamicConfig', - internalType: 'bool', - type: 'bool', + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', }, ], - name: 'updateDynamicConfig', - outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorAddress = { - 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', } as const /** - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export const systemDictatorConfig = { - address: systemDictatorAddress, - abi: systemDictatorABI, +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SystemDictator_goerli +// L2OutputOracle ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export const systemDictatorGoerliABI = [ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, { type: 'event', anonymous: false, @@ -2931,677 +2803,660 @@ export const systemDictatorGoerliABI = [ anonymous: false, inputs: [ { - name: 'previousOwner', - internalType: 'address', - type: 'address', + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, { - name: 'newOwner', - internalType: 'address', - type: 'address', + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', indexed: true, }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, ], - name: 'OwnershipTransferred', + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'EXIT_1_NO_RETURN_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'PROXY_TRANSFER_STEP', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'config', - outputs: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', + name: '', + internalType: 'struct Types.OutputProposal', type: 'tuple', components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, ], }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', + name: '', + internalType: 'struct Types.OutputProposal', type: 'tuple', components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, ], }, ], }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'currentStep', - outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'dynamicConfigSet', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'exit1', - outputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'finalize', + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'finalized', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, inputs: [ { - name: '_config', - internalType: 'struct SystemDictator.DeployConfig', - type: 'tuple', - components: [ - { - name: 'globalConfig', - internalType: 'struct SystemDictator.GlobalConfig', - type: 'tuple', - components: [ - { - name: 'addressManager', - internalType: 'contract AddressManager', - type: 'address', - }, - { - name: 'proxyAdmin', - internalType: 'contract ProxyAdmin', - type: 'address', - }, - { name: 'controller', internalType: 'address', type: 'address' }, - { name: 'finalOwner', internalType: 'address', type: 'address' }, - ], - }, - { - name: 'proxyAddressConfig', - internalType: 'struct SystemDictator.ProxyAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismPortalProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1StandardBridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'l1ERC721BridgeProxy', - internalType: 'address', - type: 'address', - }, - { - name: 'systemConfigProxy', - internalType: 'address', - type: 'address', - }, - ], - }, - { - name: 'implementationAddressConfig', - internalType: 'struct SystemDictator.ImplementationAddressConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleImpl', - internalType: 'contract L2OutputOracle', - type: 'address', - }, - { - name: 'optimismPortalImpl', - internalType: 'contract OptimismPortal', - type: 'address', - }, - { - name: 'l1CrossDomainMessengerImpl', - internalType: 'contract L1CrossDomainMessenger', - type: 'address', - }, - { - name: 'l1StandardBridgeImpl', - internalType: 'contract L1StandardBridge', - type: 'address', - }, - { - name: 'optimismMintableERC20FactoryImpl', - internalType: 'contract OptimismMintableERC20Factory', - type: 'address', - }, - { - name: 'l1ERC721BridgeImpl', - internalType: 'contract L1ERC721Bridge', - type: 'address', - }, - { - name: 'portalSenderImpl', - internalType: 'contract PortalSender', - type: 'address', - }, - { - name: 'systemConfigImpl', - internalType: 'contract SystemConfig', - type: 'address', - }, - ], - }, - { - name: 'systemConfigConfig', - internalType: 'struct SystemDictator.SystemConfigConfig', - type: 'tuple', - components: [ - { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'overhead', internalType: 'uint256', type: 'uint256' }, - { name: 'scalar', internalType: 'uint256', type: 'uint256' }, - { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, - { - name: 'unsafeBlockSigner', - internalType: 'address', - type: 'address', - }, - ], - }, - ], + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, }, ], - name: 'initialize', - outputs: [], + name: 'OptimismMintableERC20Created', }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l2OutputOracleDynamicConfig', - outputs: [ + type: 'event', + anonymous: false, + inputs: [ { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, }, { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, }, ], + name: 'StandardL2TokenCreated', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'oldL1CrossDomainMessenger', + name: 'BRIDGE', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'owner', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'renounceOwnership', - outputs: [], + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'step1', - outputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ { stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step2', - outputs: [], + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step3', - outputs: [], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step4', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step5', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'step6', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', + type: 'event', + anonymous: false, inputs: [ { - name: '_l2OutputOracleDynamicConfig', - internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', - type: 'tuple', - components: [ - { - name: 'l2OutputOracleStartingBlockNumber', - internalType: 'uint256', - type: 'uint256', - }, - { - name: 'l2OutputOracleStartingTimestamp', - internalType: 'uint256', - type: 'uint256', - }, - ], + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, }, ], - name: 'updateL2OutputOracleDynamicConfig', - outputs: [], + name: 'Paused', }, -] as const - -/** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) - */ -export const systemDictatorGoerliAddress = { - 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', -} as const - -/** - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) - */ -export const systemDictatorGoerliConfig = { - address: systemDictatorGoerliAddress, - abi: systemDictatorGoerliABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// MintManager -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', + type: 'event', + anonymous: false, inputs: [ - { name: '_upgrader', internalType: 'address', type: 'address' }, - { name: '_governanceToken', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, ], + name: 'TransactionDeposited', }, { type: 'event', anonymous: false, inputs: [ { - name: 'previousOwner', + name: 'account', internalType: 'address', type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ { - name: 'newOwner', - internalType: 'address', - type: 'address', + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', indexed: true, }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, ], - name: 'OwnershipTransferred', + name: 'WithdrawalProven', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'DENOMINATOR', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_CAP', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MINT_PERIOD', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], }, { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'governanceToken', - outputs: [ - { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_account', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, ], - name: 'mint', + name: 'finalizeWithdrawalTransaction', outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'mintPermittedAfter', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'owner', + name: 'l2Sender', outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', type: 'function', inputs: [], - name: 'renounceOwnership', - outputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], - name: 'transferOwnership', + inputs: [], + name: 'pause', outputs: [], }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_newMintManager', internalType: 'address', type: 'address' }, - ], - name: 'upgrade', - outputs: [], - }, -] as const - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerAddress = { - 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', - 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', -} as const - -/** - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) - */ -export const mintManagerConfig = { - address: mintManagerAddress, - abi: mintManagerABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC721Factory -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) - */ -export const optimismMintableErc721FactoryABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, { - name: 'deployer', - internalType: 'address', - type: 'address', - indexed: false, + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, ], - name: 'OptimismMintableERC721Created', + name: 'proveWithdrawalTransaction', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'bridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'remoteChainId', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'unpause', + outputs: [], }, { stateMutability: 'view', @@ -3610,509 +3465,329 @@ export const optimismMintableErc721FactoryABI = [ name: 'version', outputs: [{ name: '', internalType: 'string', type: 'string' }], }, + { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export const optimismMintableErc721FactoryAddress = { - 10: '0x4200000000000000000000000000000000000017', +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', } as const /** - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export const optimismMintableErc721FactoryConfig = { - address: optimismMintableErc721FactoryAddress, - abi: optimismMintableErc721FactoryABI, +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OptimismMintableERC721Factory_optimism-goerli +// PortalSender ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliABI = [ +export const portalSenderABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ - { name: '_bridge', internalType: 'address', type: 'address' }, - { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'deployer', - internalType: 'address', + name: '_portal', + internalType: 'contract OptimismPortal', type: 'address', - indexed: false, }, ], - name: 'OptimismMintableERC721Created', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'BRIDGE', - outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'REMOTE_CHAIN_ID', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_name', internalType: 'string', type: 'string' }, - { name: '_symbol', internalType: 'string', type: 'string' }, + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, ], - name: 'createOptimismMintableERC721', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'isOptimismMintableERC721', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'donate', + outputs: [], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliAddress = { - 420: '0x4200000000000000000000000000000000000017', +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export const optimismMintableErc721FactoryOptimismGoerliConfig = { - address: optimismMintableErc721FactoryOptimismGoerliAddress, - abi: optimismMintableErc721FactoryOptimismGoerliABI, +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// BaseFeeVault +// ProxyAdmin ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const baseFeeVaultABI = [ +export const proxyAdminABI = [ { stateMutability: 'nonpayable', type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], }, { type: 'event', anonymous: false, inputs: [ { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'from', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Withdrawal', + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) - */ -export const baseFeeVaultAddress = { - 420: '0x4200000000000000000000000000000000000019', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) - */ -export const baseFeeVaultConfig = { - address: baseFeeVaultAddress, - abi: baseFeeVaultABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// GasPriceOracle -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'baseFee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'pure', - type: 'function', - inputs: [], - name: 'decimals', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'gasPrice', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], - name: 'getL1Fee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], - name: 'getL1GasUsed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'l1BaseFee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'overhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'scalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleAddress = { - 420: '0x420000000000000000000000000000000000000F', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) - */ -export const gasPriceOracleConfig = { - address: gasPriceOracleAddress, - abi: gasPriceOracleABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1Block -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) - */ -export const l1BlockABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { stateMutability: 'view', type: 'function', - inputs: [], - name: 'DEPOSITOR_ACCOUNT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'basefee', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'renounceOwnership', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'batcherHash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'hash', - outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1FeeOverhead', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1FeeScalar', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'number', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'sequenceNumber', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], }, { stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_number', internalType: 'uint64', type: 'uint64' }, - { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, - { name: '_basefee', internalType: 'uint256', type: 'uint256' }, - { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, - { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, - { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, - { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, ], - name: 'setL1BlockValues', + name: 'upgrade', outputs: [], }, { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'timestamp', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'view', + stateMutability: 'payable', type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const l1BlockAddress = { - 420: '0x4200000000000000000000000000000000000015', +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export const l1BlockConfig = { - address: l1BlockAddress, - abi: l1BlockABI, +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L1FeeVault +// SystemConfig ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l1FeeVaultABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'from', - internalType: 'address', - type: 'address', - indexed: false, - }, - ], - name: 'Withdrawal', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) - */ -export const l1FeeVaultAddress = { - 420: '0x420000000000000000000000000000000000001A', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) - */ -export const l1FeeVaultConfig = { - address: l1FeeVaultAddress, - abi: l1FeeVaultABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2CrossDomainMessenger -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) - */ -export const l2CrossDomainMessengerABI = [ +export const systemConfigABI = [ { stateMutability: 'nonpayable', type: 'constructor', inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, { - name: '_l1CrossDomainMessenger', - internalType: 'address', - type: 'address', + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], }, ], }, @@ -4121,13 +3796,20 @@ export const l2CrossDomainMessengerABI = [ anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', + name: 'version', + internalType: 'uint256', + type: 'uint256', indexed: true, }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], - name: 'FailedRelayedMessage', + name: 'ConfigUpdate', }, { type: 'event', @@ -4142,1086 +3824,9609 @@ export const l2CrossDomainMessengerABI = [ anonymous: false, inputs: [ { - name: 'msgHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: true, - }, - ], - name: 'RelayedMessage', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'target', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: false, - }, - { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'messageNonce', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'gasLimit', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - ], - name: 'SentMessage', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'sender', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, ], - name: 'SentMessageExtension1', + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_GAS_CALLDATA_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + name: 'gasLimit', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'OTHER_MESSENGER', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_CALL_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_CONSTANT_OVERHEAD', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'RELAY_GAS_CHECK_BUFFER', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'renounceOwnership', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'RELAY_RESERVED_GAS', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], - }, - { - stateMutability: 'pure', - type: 'function', - inputs: [ - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - ], - name: 'baseGas', - outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], }, { stateMutability: 'view', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'failedMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'initialize', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'l1CrossDomainMessenger', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_nonce', internalType: 'uint256', type: 'uint256' }, - { name: '_sender', internalType: 'address', type: 'address' }, - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_value', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, ], - name: 'relayMessage', + name: 'setResourceConfig', outputs: [], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_message', internalType: 'bytes', type: 'bytes' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, ], - name: 'sendMessage', + name: 'setUnsafeBlockSigner', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'successfulMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'xDomainMessageSender', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l2CrossDomainMessengerAddress = { - 420: '0x4200000000000000000000000000000000000007', +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export const l2CrossDomainMessengerConfig = { - address: l2CrossDomainMessengerAddress, - abi: l2CrossDomainMessengerABI, +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2ERC721Bridge +// SystemDictator ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2Erc721BridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_messenger', internalType: 'address', type: 'address' }, - { name: '_otherBridge', internalType: 'address', type: 'address' }, - ], - }, +export const systemDictatorABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, { type: 'event', anonymous: false, inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, ], - name: 'ERC721BridgeFinalized', + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'localToken', + name: 'previousOwner', internalType: 'address', type: 'address', indexed: true, }, { - name: 'remoteToken', + name: 'newOwner', internalType: 'address', type: 'address', indexed: true, }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'tokenId', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC721BridgeInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC721To', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, ], - name: 'finalizeBridgeERC721', - outputs: [], + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'otherBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export const l2Erc721BridgeAddress = { - 420: '0x4200000000000000000000000000000000000014', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) - */ -export const l2Erc721BridgeConfig = { - address: l2Erc721BridgeAddress, - abi: l2Erc721BridgeABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2StandardBridge -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_otherBridge', - internalType: 'address payable', - type: 'address', - }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ + name: 'config', + outputs: [ { - name: 'l1Token', - internalType: 'address', - type: 'address', - indexed: true, + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], }, { - name: 'l2Token', - internalType: 'address', - type: 'address', - indexed: true, + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], }, { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], }, ], - name: 'DepositFinalized', }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC20BridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'localToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'remoteToken', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ERC20BridgeInitiated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ETHBridgeFinalized', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: true }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'ETHBridgeInitiated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'l1Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { - name: 'l2Token', - internalType: 'address', - type: 'address', - indexed: true, - }, - { name: 'from', internalType: 'address', type: 'address', indexed: true }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: false, - }, - { - name: 'extraData', - internalType: 'bytes', - type: 'bytes', - indexed: false, - }, - ], - name: 'WithdrawalInitiated', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeERC20To', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETH', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'bridgeETHTo', - outputs: [], + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', - inputs: [ - { name: '', internalType: 'address', type: 'address' }, - { name: '', internalType: 'address', type: 'address' }, - ], - name: 'deposits', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_localToken', internalType: 'address', type: 'address' }, - { name: '_remoteToken', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeERC20', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeBridgeETH', - outputs: [], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_l1Token', internalType: 'address', type: 'address' }, - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_from', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'finalizeDeposit', + inputs: [], + name: 'exit1', outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l1TokenBridge', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'exited', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'messenger', - outputs: [ - { - name: '', - internalType: 'contract CrossDomainMessenger', - type: 'address', - }, - ], + name: 'finalize', + outputs: [], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'withdraw', - outputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_l2Token', internalType: 'address', type: 'address' }, - { name: '_to', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, - { name: '_extraData', internalType: 'bytes', type: 'bytes' }, - ], - name: 'withdrawTo', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeAddress = { - 420: '0x4200000000000000000000000000000000000010', -} as const - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) - */ -export const l2StandardBridgeConfig = { - address: l2StandardBridgeAddress, - abi: l2StandardBridgeABI, -} as const - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// L2ToL1MessagePasser -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) - */ -export const l2ToL1MessagePasserABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'nonce', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - { - name: 'sender', - internalType: 'address', - type: 'address', - indexed: true, - }, { - name: 'target', - internalType: 'address', - type: 'address', - indexed: true, + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + { + name: 'resourceConfig', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { + name: 'maxResourceLimit', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'minimumBaseFee', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'systemTxMaxGas', + internalType: 'uint32', + type: 'uint32', + }, + { + name: 'maximumBaseFee', + internalType: 'uint128', + type: 'uint128', + }, + ], + }, + ], + }, + ], }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ { - name: 'value', + name: 'l2OutputOracleStartingBlockNumber', internalType: 'uint256', type: 'uint256', - indexed: false, }, { - name: 'gasLimit', + name: 'l2OutputOracleStartingTimestamp', internalType: 'uint256', type: 'uint256', - indexed: false, - }, - { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, - { - name: 'withdrawalHash', - internalType: 'bytes32', - type: 'bytes32', - indexed: false, }, ], - name: 'MessagePassed', }, { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'amount', - internalType: 'uint256', - type: 'uint256', - indexed: true, - }, - ], - name: 'WithdrawerBalanceBurnt', + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'MESSAGE_VERSION', - outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + name: 'optimismPortalDynamicConfig', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], }, { - stateMutability: 'nonpayable', + stateMutability: 'view', type: 'function', inputs: [], - name: 'burn', - outputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], }, { - stateMutability: 'payable', + stateMutability: 'nonpayable', type: 'function', - inputs: [ - { name: '_target', internalType: 'address', type: 'address' }, - { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, - { name: '_data', internalType: 'bytes', type: 'bytes' }, - ], - name: 'initiateWithdrawal', + inputs: [], + name: 'phase1', outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'messageNonce', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'phase2', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], - name: 'sentMessages', - outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + inputs: [], + name: 'renounceOwnership', + outputs: [], }, { - stateMutability: 'view', + stateMutability: 'nonpayable', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_optimismPortalDynamicConfig', + internalType: 'bool', + type: 'bool', + }, + ], + name: 'updateDynamicConfig', + outputs: [], }, - { stateMutability: 'payable', type: 'receive' }, ] as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2ToL1MessagePasserAddress = { - 420: '0x4200000000000000000000000000000000000016', +export const systemDictatorAddress = { + 1: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', } as const /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export const l2ToL1MessagePasserConfig = { - address: l2ToL1MessagePasserAddress, - abi: l2ToL1MessagePasserABI, +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, } as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// SequencerFeeVault +// SystemDictator_goerli ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export const sequencerFeeVaultABI = [ +export const systemDictatorGoerliABI = [ { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', }, { type: 'event', anonymous: false, inputs: [ { - name: 'value', - internalType: 'uint256', - type: 'uint256', - indexed: false, + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, }, - { name: 'to', internalType: 'address', type: 'address', indexed: false }, { - name: 'from', + name: 'newOwner', internalType: 'address', type: 'address', - indexed: false, + indexed: true, }, ], - name: 'Withdrawal', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'MIN_WITHDRAWAL_AMOUNT', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'RECIPIENT', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'OwnershipTransferred', }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'l1FeeWallet', - outputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'EXIT_1_NO_RETURN_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'totalProcessed', - outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'PROXY_TRANSFER_STEP', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], }, { stateMutability: 'view', type: 'function', inputs: [], - name: 'version', - outputs: [{ name: '', internalType: 'string', type: 'string' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [], - name: 'withdraw', - outputs: [], - }, - { stateMutability: 'payable', type: 'receive' }, -] as const + name: 'config', + outputs: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'currentStep', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dynamicConfigSet', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'exit1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'finalize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'finalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct SystemDictator.DeployConfig', + type: 'tuple', + components: [ + { + name: 'globalConfig', + internalType: 'struct SystemDictator.GlobalConfig', + type: 'tuple', + components: [ + { + name: 'addressManager', + internalType: 'contract AddressManager', + type: 'address', + }, + { + name: 'proxyAdmin', + internalType: 'contract ProxyAdmin', + type: 'address', + }, + { name: 'controller', internalType: 'address', type: 'address' }, + { name: 'finalOwner', internalType: 'address', type: 'address' }, + ], + }, + { + name: 'proxyAddressConfig', + internalType: 'struct SystemDictator.ProxyAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismPortalProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1StandardBridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'l1ERC721BridgeProxy', + internalType: 'address', + type: 'address', + }, + { + name: 'systemConfigProxy', + internalType: 'address', + type: 'address', + }, + ], + }, + { + name: 'implementationAddressConfig', + internalType: 'struct SystemDictator.ImplementationAddressConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleImpl', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { + name: 'optimismPortalImpl', + internalType: 'contract OptimismPortal', + type: 'address', + }, + { + name: 'l1CrossDomainMessengerImpl', + internalType: 'contract L1CrossDomainMessenger', + type: 'address', + }, + { + name: 'l1StandardBridgeImpl', + internalType: 'contract L1StandardBridge', + type: 'address', + }, + { + name: 'optimismMintableERC20FactoryImpl', + internalType: 'contract OptimismMintableERC20Factory', + type: 'address', + }, + { + name: 'l1ERC721BridgeImpl', + internalType: 'contract L1ERC721Bridge', + type: 'address', + }, + { + name: 'portalSenderImpl', + internalType: 'contract PortalSender', + type: 'address', + }, + { + name: 'systemConfigImpl', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + name: 'systemConfigConfig', + internalType: 'struct SystemDictator.SystemConfigConfig', + type: 'tuple', + components: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'overhead', internalType: 'uint256', type: 'uint256' }, + { name: 'scalar', internalType: 'uint256', type: 'uint256' }, + { name: 'batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'gasLimit', internalType: 'uint64', type: 'uint64' }, + { + name: 'unsafeBlockSigner', + internalType: 'address', + type: 'address', + }, + ], + }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2OutputOracleDynamicConfig', + outputs: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'oldL1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step1', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step2', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step3', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step4', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step5', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'step6', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_l2OutputOracleDynamicConfig', + internalType: 'struct SystemDictator.L2OutputOracleDynamicConfig', + type: 'tuple', + components: [ + { + name: 'l2OutputOracleStartingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'l2OutputOracleStartingTimestamp', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateL2OutputOracleDynamicConfig', + outputs: [], + }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliAddress = { + 5: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + */ +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TeleportrWithdrawer +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'user', internalType: 'address', type: 'address', indexed: true }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnerUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ReceivedETH', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewERC20', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'asset', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'WithdrewERC721', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'recipient', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'WithdrewETH', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + ], + name: 'CALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + { name: '_gas', internalType: 'uint256', type: 'uint256' }, + ], + name: 'DELEGATECALL', + outputs: [ + { name: '', internalType: 'bool', type: 'bool' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'data', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'recipient', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'setData', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'setRecipient', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_teleportr', internalType: 'address', type: 'address' }], + name: 'setTeleportr', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'teleportr', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC20', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + ], + name: 'withdrawERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_asset', internalType: 'contract ERC721', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address payable', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_to', internalType: 'address payable', type: 'address' }], + name: 'withdrawETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdrawFromTeleportr', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerAddress = { + 1: '0x78A25524D90E3D0596558fb43789bD800a5c3007', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export const teleportrWithdrawerConfig = { + address: teleportrWithdrawerAddress, + abi: teleportrWithdrawerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AttestationStation +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'about', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'key', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'AttestationCreated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_attestations', + internalType: 'struct AttestationStation.AttestationData[]', + type: 'tuple[]', + components: [ + { name: 'about', internalType: 'address', type: 'address' }, + { name: 'key', internalType: 'bytes32', type: 'bytes32' }, + { name: 'val', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'attest', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_about', internalType: 'address', type: 'address' }, + { name: '_key', internalType: 'bytes32', type: 'bytes32' }, + { name: '_val', internalType: 'bytes', type: 'bytes' }, + ], + name: 'attest', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'attestations', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationAddress = { + 10: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', + 420: '0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export const attestationStationConfig = { + address: attestationStationAddress, + abi: attestationStationABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 10: '0x4200000000000000000000000000000000000014', + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'bridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'remoteChainId', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryAddress = { + 10: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_bridge', internalType: 'address', type: 'address' }, + { name: '_remoteChainId', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC721Created', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REMOTE_CHAIN_ID', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC721', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'isOptimismMintableERC721', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliAddress = { + 420: '0x4200000000000000000000000000000000000017', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + */ +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Optimist +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + { name: '_baseURIAttestor', internalType: 'address', type: 'address' }, + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { + name: '_optimistAllowlist', + internalType: 'contract OptimistAllowlist', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'approved', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'operator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BASE_URI_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BASE_URI_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_ALLOWLIST', + outputs: [ + { name: '', internalType: 'contract OptimistAllowlist', type: 'address' }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'getApproved', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'isOnAllowList', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'ownerOf', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'safeTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + name: 'tokenIdOfAddress', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_tokenId', internalType: 'uint256', type: 'uint256' }], + name: 'tokenURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistAddress = { + 10: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', + 420: '0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export const optimistConfig = { + address: optimistAddress, + abi: optimistABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimistAllowlist +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + { name: '_allowlistAttestor', internalType: 'address', type: 'address' }, + { + name: '_coinbaseQuestAttestor', + internalType: 'address', + type: 'address', + }, + { name: '_optimistInviter', internalType: 'address', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ALLOWLIST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'COINBASE_QUEST_ATTESTOR', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OPTIMIST_INVITER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_claimer', internalType: 'address', type: 'address' }], + name: 'isAllowedToMint', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistAddress = { + 10: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', + 420: '0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + */ +export const optimistAllowlistConfig = { + address: optimistAllowlistAddress, + abi: optimistAllowlistABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimistInviter +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_inviteGranter', internalType: 'address', type: 'address' }, + { + name: '_attestationStation', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'issuer', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'claimer', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'InviteClaimed', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ATTESTATION_STATION', + outputs: [ + { + name: '', + internalType: 'contract AttestationStation', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CAN_INVITE_ATTESTATION_KEY', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CLAIMABLE_INVITE_TYPEHASH', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EIP712_VERSION', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'INVITE_GRANTER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_COMMITMENT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_claimer', internalType: 'address', type: 'address' }, + { + name: '_claimableInvite', + internalType: 'struct OptimistInviter.ClaimableInvite', + type: 'tuple', + components: [ + { name: 'issuer', internalType: 'address', type: 'address' }, + { name: 'nonce', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'claimInvite', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_commitment', internalType: 'bytes32', type: 'bytes32' }], + name: 'commitInvite', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'commitmentTimestamps', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'inviteCounts', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_accounts', internalType: 'address[]', type: 'address[]' }, + { name: '_inviteCount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setInviteCounts', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'usedNonces', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterAddress = { + 10: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', + 420: '0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + */ +export const optimistInviterConfig = { + address: optimistInviterAddress, + abi: optimistInviterABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// React +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"getAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerGetAddress< + TFunctionName extends 'getAddress', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'getAddress', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"owner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof addressManagerABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite( + { + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'renounceOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"setAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerSetAddress< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + 'setAddress' + >['request']['abi'], + 'setAddress', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setAddress' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setAddress' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'setAddress', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof addressManagerABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof addressManagerABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite( + { + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'transferOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof addressManagerABI, + 'renounceOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"setAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerSetAddress( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'setAddress', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function usePrepareAddressManagerTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof addressManagerABI, + 'transferOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"AddressSet"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerAddressSetEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + eventName: 'AddressSet', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"owner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof assetReceiverABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"CALL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverCall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof assetReceiverABI, + 'CALL' + >['request']['abi'], + 'CALL', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'CALL' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'CALL' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'CALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverDelegatecall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof assetReceiverABI, + 'DELEGATECALL' + >['request']['abi'], + 'DELEGATECALL', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'DELEGATECALL' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'DELEGATECALL' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'DELEGATECALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"setOwner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverSetOwner< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof assetReceiverABI, + 'setOwner' + >['request']['abi'], + 'setOwner', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setOwner' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setOwner' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'setOwner', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"withdrawERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverWithdrawErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof assetReceiverABI, + 'withdrawERC20' + >['request']['abi'], + 'withdrawERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC20' + } + : UseContractWriteConfig< + typeof assetReceiverABI, + 'withdrawERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC20' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'withdrawERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"withdrawERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverWithdrawErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof assetReceiverABI, + 'withdrawERC721' + >['request']['abi'], + 'withdrawERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC721' + } + : UseContractWriteConfig< + typeof assetReceiverABI, + 'withdrawERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC721' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'withdrawERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"withdrawETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverWithdrawEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof assetReceiverAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof assetReceiverABI, + 'withdrawETH' + >['request']['abi'], + 'withdrawETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawETH' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawETH' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'withdrawETH', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function usePrepareAssetReceiverWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"CALL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function usePrepareAssetReceiverCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'CALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function usePrepareAssetReceiverDelegatecall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'DELEGATECALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"setOwner"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function usePrepareAssetReceiverSetOwner( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'setOwner', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"withdrawERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function usePrepareAssetReceiverWithdrawErc20( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'withdrawERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"withdrawERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function usePrepareAssetReceiverWithdrawErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'withdrawERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link assetReceiverABI}__ and `functionName` set to `"withdrawETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function usePrepareAssetReceiverWithdrawEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + functionName: 'withdrawETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link assetReceiverABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link assetReceiverABI}__ and `eventName` set to `"OwnerUpdated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverOwnerUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + eventName: 'OwnerUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link assetReceiverABI}__ and `eventName` set to `"ReceivedETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverReceivedEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + eventName: 'ReceivedETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link assetReceiverABI}__ and `eventName` set to `"WithdrewERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverWithdrewErc20Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + eventName: 'WithdrewERC20', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link assetReceiverABI}__ and `eventName` set to `"WithdrewERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverWithdrewErc721Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + eventName: 'WithdrewERC721', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link assetReceiverABI}__ and `eventName` set to `"WithdrewETH"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export function useAssetReceiverWithdrewEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof assetReceiverAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: assetReceiverABI, + address: assetReceiverAddress[chainId as keyof typeof assetReceiverAddress], + eventName: 'WithdrewETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkBalanceHighABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export function useCheckBalanceHighRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof checkBalanceHighABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof checkBalanceHighAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkBalanceHighABI, + address: + checkBalanceHighAddress[chainId as keyof typeof checkBalanceHighAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkBalanceHighABI}__ and `functionName` set to `"check"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export function useCheckBalanceHighCheck< + TFunctionName extends 'check', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof checkBalanceHighABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof checkBalanceHighAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkBalanceHighABI, + address: + checkBalanceHighAddress[chainId as keyof typeof checkBalanceHighAddress], + functionName: 'check', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkBalanceHighABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export function useCheckBalanceHighEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkBalanceHighAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: checkBalanceHighABI, + address: + checkBalanceHighAddress[chainId as keyof typeof checkBalanceHighAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkBalanceHighABI}__ and `eventName` set to `"_EventToExposeStructInABI__Params"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x7eC64a8a591bFf829ff6C8be76074D540ACb813F) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x5d7103853f12109A7d27F118e54BbC654ad847E9) + */ +export function useCheckBalanceHighEventToExposeStructInAbiParamsEvent( + config: Omit< + UseContractEventConfig< + typeof checkBalanceHighABI, + '_EventToExposeStructInABI__Params' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof checkBalanceHighAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: checkBalanceHighABI, + address: + checkBalanceHighAddress[chainId as keyof typeof checkBalanceHighAddress], + eventName: '_EventToExposeStructInABI__Params', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkBalanceLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export function useCheckBalanceLowRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof checkBalanceLowABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof checkBalanceLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkBalanceLowABI, + address: + checkBalanceLowAddress[chainId as keyof typeof checkBalanceLowAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkBalanceLowABI}__ and `functionName` set to `"check"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export function useCheckBalanceLowCheck< + TFunctionName extends 'check', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof checkBalanceLowABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof checkBalanceLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkBalanceLowABI, + address: + checkBalanceLowAddress[chainId as keyof typeof checkBalanceLowAddress], + functionName: 'check', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkBalanceLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export function useCheckBalanceLowEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkBalanceLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: checkBalanceLowABI, + address: + checkBalanceLowAddress[chainId as keyof typeof checkBalanceLowAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkBalanceLowABI}__ and `eventName` set to `"_EventToExposeStructInABI__Params"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x381a4eFC2A2C914eA1889722bB4B44Fa6BD5b640) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x7Ce13D154FAEE5C8B3E6b19d4Add16f21d884474) + */ +export function useCheckBalanceLowEventToExposeStructInAbiParamsEvent( + config: Omit< + UseContractEventConfig< + typeof checkBalanceLowABI, + '_EventToExposeStructInABI__Params' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof checkBalanceLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: checkBalanceLowABI, + address: + checkBalanceLowAddress[chainId as keyof typeof checkBalanceLowAddress], + eventName: '_EventToExposeStructInABI__Params', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkGelatoLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export function useCheckGelatoLowRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkGelatoLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkGelatoLowABI, + address: + checkGelatoLowAddress[chainId as keyof typeof checkGelatoLowAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkGelatoLowABI}__ and `functionName` set to `"check"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export function useCheckGelatoLowCheck< + TFunctionName extends 'check', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof checkGelatoLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkGelatoLowABI, + address: + checkGelatoLowAddress[chainId as keyof typeof checkGelatoLowAddress], + functionName: 'check', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkGelatoLowABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export function useCheckGelatoLowEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkGelatoLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: checkGelatoLowABI, + address: + checkGelatoLowAddress[chainId as keyof typeof checkGelatoLowAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link checkGelatoLowABI}__ and `eventName` set to `"_EventToExposeStructInABI__Params"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4f7CFc43f6D262a085F3b946cAC69E7a8E39BBAa) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xF9c8a4Cb4021f57F9f6d69799cA9BefF64524862) + */ +export function useCheckGelatoLowEventToExposeStructInAbiParamsEvent( + config: Omit< + UseContractEventConfig< + typeof checkGelatoLowABI, + '_EventToExposeStructInABI__Params' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof checkGelatoLowAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: checkGelatoLowABI, + address: + checkGelatoLowAddress[chainId as keyof typeof checkGelatoLowAddress], + eventName: '_EventToExposeStructInABI__Params', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkTrueABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) + */ +export function useCheckTrueRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof checkTrueAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkTrueABI, + address: checkTrueAddress[chainId as keyof typeof checkTrueAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link checkTrueABI}__ and `functionName` set to `"check"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5c741a38cb11424711231777D71689C458eE835D) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x47443D0C184e022F19BD1578F5bca6B8a9F58E32) + */ +export function useCheckTrueCheck< + TFunctionName extends 'check', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof checkTrueAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: checkTrueABI, + address: checkTrueAddress[chainId as keyof typeof checkTrueAddress], + functionName: 'check', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractRead({ + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"drips"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieDrips< + TFunctionName extends 'drips', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractRead({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'drips', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"executable"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieExecutable< + TFunctionName extends 'executable', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractRead({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'executable', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"owner"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractRead({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieCall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'CALL', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'CALL' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'CALL' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'CALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieDelegatecall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieABI, + 'DELEGATECALL' + >['request']['abi'], + 'DELEGATECALL', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'DELEGATECALL' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'DELEGATECALL' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'DELEGATECALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"create"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieCreate< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieABI, + 'create' + >['request']['abi'], + 'create', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'create' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'create' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'create', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"drip"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieDrip< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'drip', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'drip' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'drip' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'drip', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieSetOwner< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieABI, + 'setOwner' + >['request']['abi'], + 'setOwner', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setOwner' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setOwner' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'setOwner', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"status"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieStatus< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieABI, + 'status' + >['request']['abi'], + 'status', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'status' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'status' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'status', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieWithdrawErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieABI, + 'withdrawERC20' + >['request']['abi'], + 'withdrawERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC20' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC20' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'withdrawERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieWithdrawErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieABI, + 'withdrawERC721' + >['request']['abi'], + 'withdrawERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC721' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC721' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'withdrawERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieWithdrawEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieABI, + 'withdrawETH' + >['request']['abi'], + 'withdrawETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawETH' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawETH' + } = {} as any +) { + return useContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'withdrawETH', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'CALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieDelegatecall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'DELEGATECALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"create"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieCreate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'create', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"drip"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieDrip( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'drip', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieSetOwner( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'setOwner', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"status"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieStatus( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'status', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieWithdrawErc20( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'withdrawERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieWithdrawErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'withdrawERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieWithdrawEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieABI, + address: drippieAddress[1], + functionName: 'withdrawETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"DripCreated"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieDripCreatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'DripCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"DripExecuted"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieDripExecutedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'DripExecuted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"DripStatusUpdated"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieDripStatusUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'DripStatusUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"OwnerUpdated"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieOwnerUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'OwnerUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"ReceivedETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieReceivedEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'ReceivedETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"WithdrewERC20"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieWithdrewErc20Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'WithdrewERC20', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"WithdrewERC721"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieWithdrewErc721Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'WithdrewERC721', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieABI}__ and `eventName` set to `"WithdrewETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieWithdrewEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieAddress } = {} as any +) { + return useContractEvent({ + abi: drippieABI, + address: drippieAddress[1], + eventName: 'WithdrewETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"drips"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliDrips< + TFunctionName extends 'drips', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'drips', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"executable"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliExecutable< + TFunctionName extends 'executable', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'executable', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"owner"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliCall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'CALL' + >['request']['abi'], + 'CALL', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'CALL' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'CALL' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'CALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliDelegatecall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'DELEGATECALL' + >['request']['abi'], + 'DELEGATECALL', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'DELEGATECALL' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'DELEGATECALL' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'DELEGATECALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"create"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliCreate< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'create' + >['request']['abi'], + 'create', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'create' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'create' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'create', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"drip"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliDrip< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'drip' + >['request']['abi'], + 'drip', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'drip' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'drip' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'drip', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliSetOwner< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'setOwner' + >['request']['abi'], + 'setOwner', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setOwner' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setOwner' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'setOwner', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"status"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliStatus< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'status' + >['request']['abi'], + 'status', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'status' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'status' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'status', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliWithdrawErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'withdrawERC20' + >['request']['abi'], + 'withdrawERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC20' + } + : UseContractWriteConfig< + typeof drippieGoerliABI, + 'withdrawERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC20' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'withdrawERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliWithdrawErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'withdrawERC721' + >['request']['abi'], + 'withdrawERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC721' + } + : UseContractWriteConfig< + typeof drippieGoerliABI, + 'withdrawERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC721' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'withdrawERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliWithdrawEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieGoerliABI, + 'withdrawETH' + >['request']['abi'], + 'withdrawETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawETH' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawETH' + } = {} as any +) { + return useContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'withdrawETH', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'CALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliDelegatecall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'DELEGATECALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"create"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliCreate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'create', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"drip"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliDrip( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'drip', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliSetOwner( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'setOwner', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"status"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliStatus( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'status', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliWithdrawErc20( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'withdrawERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliWithdrawErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'withdrawERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieGoerliABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function usePrepareDrippieGoerliWithdrawEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + functionName: 'withdrawETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"DripCreated"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliDripCreatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'DripCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"DripExecuted"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliDripExecutedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'DripExecuted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"DripStatusUpdated"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliDripStatusUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'DripStatusUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"OwnerUpdated"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliOwnerUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'OwnerUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"ReceivedETH"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliReceivedEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'ReceivedETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"WithdrewERC20"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliWithdrewErc20Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'WithdrewERC20', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"WithdrewERC721"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliWithdrewErc721Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'WithdrewERC721', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieGoerliABI}__ and `eventName` set to `"WithdrewETH"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export function useDrippieGoerliWithdrewEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieGoerliABI, + address: drippieGoerliAddress[5], + eventName: 'WithdrewETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof drippieOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof drippieOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"drips"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliDrips< + TFunctionName extends 'drips', + TSelectData = ReadContractResult< + typeof drippieOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof drippieOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'drips', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"executable"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliExecutable< + TFunctionName extends 'executable', + TSelectData = ReadContractResult< + typeof drippieOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof drippieOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'executable', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"owner"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult< + typeof drippieOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof drippieOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractRead({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite< + typeof drippieOptimismGoerliABI, + TFunctionName, + TMode + >({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliCall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'CALL' + >['request']['abi'], + 'CALL', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'CALL' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'CALL' + } = {} as any +) { + return useContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'CALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliDelegatecall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'DELEGATECALL' + >['request']['abi'], + 'DELEGATECALL', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'DELEGATECALL' + } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'DELEGATECALL', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'DELEGATECALL' + } = {} as any +) { + return useContractWrite< + typeof drippieOptimismGoerliABI, + 'DELEGATECALL', + TMode + >({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'DELEGATECALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"create"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliCreate< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'create' + >['request']['abi'], + 'create', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'create' } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'create', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'create' + } = {} as any +) { + return useContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'create', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"drip"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliDrip< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'drip' + >['request']['abi'], + 'drip', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'drip' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'drip' + } = {} as any +) { + return useContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'drip', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliSetOwner< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'setOwner' + >['request']['abi'], + 'setOwner', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setOwner' } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'setOwner', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setOwner' + } = {} as any +) { + return useContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'setOwner', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"status"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliStatus< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'status' + >['request']['abi'], + 'status', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'status' } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'status', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'status' + } = {} as any +) { + return useContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'status', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliWithdrawErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'withdrawERC20' + >['request']['abi'], + 'withdrawERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC20' + } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'withdrawERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC20' + } = {} as any +) { + return useContractWrite< + typeof drippieOptimismGoerliABI, + 'withdrawERC20', + TMode + >({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'withdrawERC20', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliWithdrawErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'withdrawERC721' + >['request']['abi'], + 'withdrawERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC721' + } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'withdrawERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC721' + } = {} as any +) { + return useContractWrite< + typeof drippieOptimismGoerliABI, + 'withdrawERC721', + TMode + >({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'withdrawERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliWithdrawEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof drippieOptimismGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof drippieOptimismGoerliABI, + 'withdrawETH' + >['request']['abi'], + 'withdrawETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawETH' + } + : UseContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'withdrawETH', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawETH' + } = {} as any +) { + return useContractWrite< + typeof drippieOptimismGoerliABI, + 'withdrawETH', + TMode + >({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'withdrawETH', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof drippieOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'CALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliDelegatecall( + config: Omit< + UsePrepareContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'DELEGATECALL' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'DELEGATECALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"create"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliCreate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'create', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"drip"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliDrip( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'drip', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliSetOwner( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'setOwner', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"status"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliStatus( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'status', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliWithdrawErc20( + config: Omit< + UsePrepareContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'withdrawERC20' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'withdrawERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliWithdrawErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'withdrawERC721' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'withdrawERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function usePrepareDrippieOptimismGoerliWithdrawEth( + config: Omit< + UsePrepareContractWriteConfig< + typeof drippieOptimismGoerliABI, + 'withdrawETH' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + functionName: 'withdrawETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"DripCreated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliDripCreatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'DripCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"DripExecuted"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliDripExecutedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'DripExecuted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"DripStatusUpdated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliDripStatusUpdatedEvent( + config: Omit< + UseContractEventConfig< + typeof drippieOptimismGoerliABI, + 'DripStatusUpdated' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'DripStatusUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"OwnerUpdated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliOwnerUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'OwnerUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"ReceivedETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliReceivedEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'ReceivedETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"WithdrewERC20"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliWithdrewErc20Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'WithdrewERC20', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"WithdrewERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliWithdrewErc721Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'WithdrewERC721', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link drippieOptimismGoerliABI}__ and `eventName` set to `"WithdrewETH"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export function useDrippieOptimismGoerliWithdrewEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof drippieOptimismGoerliAddress } = {} as any +) { + return useContractEvent({ + abi: drippieOptimismGoerliABI, + address: drippieOptimismGoerliAddress[420], + eventName: 'WithdrewETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MESSAGE_VERSION"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMessageVersion< + TFunctionName extends 'MESSAGE_VERSION', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MESSAGE_VERSION', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_CALLDATA_OVERHEAD"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMinGasCalldataOverhead< + TFunctionName extends 'MIN_GAS_CALLDATA_OVERHEAD', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MIN_GAS_CALLDATA_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMinGasDynamicOverheadDenominator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMinGasDynamicOverheadNumerator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"OTHER_MESSENGER"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerOtherMessenger< + TFunctionName extends 'OTHER_MESSENGER', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'OTHER_MESSENGER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"PORTAL"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerPortal< + TFunctionName extends 'PORTAL', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'PORTAL', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CALL_OVERHEAD"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayCallOverhead< + TFunctionName extends 'RELAY_CALL_OVERHEAD', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_CALL_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CONSTANT_OVERHEAD"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayConstantOverhead< + TFunctionName extends 'RELAY_CONSTANT_OVERHEAD', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_CONSTANT_OVERHEAD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_GAS_CHECK_BUFFER"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayGasCheckBuffer< + TFunctionName extends 'RELAY_GAS_CHECK_BUFFER', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_GAS_CHECK_BUFFER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_RESERVED_GAS"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayReservedGas< + TFunctionName extends 'RELAY_RESERVED_GAS', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'RELAY_RESERVED_GAS', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"baseGas"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerBaseGas< + TFunctionName extends 'baseGas', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'baseGas', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"failedMessages"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerFailedMessages< + TFunctionName extends 'failedMessages', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'failedMessages', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"messageNonce"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerMessageNonce< + TFunctionName extends 'messageNonce', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'messageNonce', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"successfulMessages"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSuccessfulMessages< + TFunctionName extends 'successfulMessages', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'successfulMessages', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"xDomainMessageSender"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerXDomainMessageSender< + TFunctionName extends 'xDomainMessageSender', + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'xDomainMessageSender', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'initialize', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + 'initialize', + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayMessage< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + 'relayMessage' + >['request']['abi'], + 'relayMessage', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'relayMessage' + } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'relayMessage', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'relayMessage' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + 'relayMessage', + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'relayMessage', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSendMessage< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1CrossDomainMessengerABI, + 'sendMessage' + >['request']['abi'], + 'sendMessage', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'sendMessage' + } + : UseContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'sendMessage', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'sendMessage' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1CrossDomainMessengerABI, + 'sendMessage', + TMode + >({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'sendMessage', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerInitialize( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'initialize' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerRelayMessage( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'relayMessage' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'relayMessage', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function usePrepareL1CrossDomainMessengerSendMessage( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1CrossDomainMessengerABI, + 'sendMessage' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + functionName: 'sendMessage', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"FailedRelayedMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerFailedRelayedMessageEvent( + config: Omit< + UseContractEventConfig< + typeof l1CrossDomainMessengerABI, + 'FailedRelayedMessage' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'FailedRelayedMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"Initialized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"RelayedMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRelayedMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'RelayedMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"SentMessage"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSentMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'SentMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"SentMessageExtension1"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerSentMessageExtension1Event( + config: Omit< + UseContractEventConfig< + typeof l1CrossDomainMessengerABI, + 'SentMessageExtension1' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + eventName: 'SentMessageExtension1', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"deposits"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeDeposits< + TFunctionName extends 'deposits', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'deposits', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"messenger"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'messenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeOtherBridge< + TFunctionName extends 'otherBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'otherBridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + 'bridgeERC721' + >['request']['abi'], + 'bridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721' + } + : UseContractWriteConfig< + typeof l1Erc721BridgeABI, + 'bridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeBridgeErc721To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + 'bridgeERC721To' + >['request']['abi'], + 'bridgeERC721To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721To' + } + : UseContractWriteConfig< + typeof l1Erc721BridgeABI, + 'bridgeERC721To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721To' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeFinalizeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721' + >['request']['abi'], + 'finalizeBridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } + : UseContractWriteConfig< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + >({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'finalizeBridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function usePrepareL1Erc721BridgeWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function usePrepareL1Erc721BridgeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const sequencerFeeVaultAddress = { - 420: '0x4200000000000000000000000000000000000011', -} as const +export function usePrepareL1Erc721BridgeBridgeErc721To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'bridgeERC721To', + ...config, + } as UsePrepareContractWriteConfig) +} /** - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export const sequencerFeeVaultConfig = { - address: sequencerFeeVaultAddress, - abi: sequencerFeeVaultABI, -} as const +export function usePrepareL1Erc721BridgeFinalizeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + functionName: 'finalizeBridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// eslintIgnore -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + ...config, + } as UseContractEventConfig) +} -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// React -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export function useL1Erc721BridgeErc721BridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + eventName: 'ERC721BridgeFinalized', + ...config, + } as UseContractEventConfig) +} /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) */ -export function useAddressManagerRead< +export function useL1Erc721BridgeErc721BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1Erc721BridgeABI, + address: + l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + eventName: 'ERC721BridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeRead< TFunctionName extends string, - TSelectData = ReadContractResult + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: addressManagerABI, + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"getAddress"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"deposits"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerGetAddress< - TFunctionName extends 'getAddress', - TSelectData = ReadContractResult +export function useL1StandardBridgeDeposits< + TFunctionName extends 'deposits', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: addressManagerABI, + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'getAddress', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'deposits', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"owner"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"l2TokenBridge"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerOwner< - TFunctionName extends 'owner', - TSelectData = ReadContractResult +export function useL1StandardBridgeL2TokenBridge< + TFunctionName extends 'l2TokenBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'l2TokenBridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"messenger"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'messenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: addressManagerABI, + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'owner', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerWrite< +export function useL1StandardBridgeWrite< TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof addressManagerAddress + TChainId extends number = keyof typeof l1StandardBridgeAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof addressManagerABI, + typeof l1StandardBridgeABI, string >['request']['abi'], TFunctionName, TMode > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + TFunctionName, + TMode + > & { abi?: never address?: never chainId?: TChainId @@ -5229,4635 +13434,4682 @@ export function useAddressManagerWrite< ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: addressManagerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerRenounceOwnership< +export function useL1StandardBridgeBridgeErc20< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof addressManagerAddress + TChainId extends number = keyof typeof l1StandardBridgeAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof addressManagerABI, - 'renounceOwnership' + typeof l1StandardBridgeABI, + 'bridgeERC20' >['request']['abi'], - 'renounceOwnership', + 'bridgeERC20', TMode > & { address?: Address chainId?: TChainId - functionName?: 'renounceOwnership' + functionName?: 'bridgeERC20' } : UseContractWriteConfig< - typeof addressManagerABI, - 'renounceOwnership', + typeof l1StandardBridgeABI, + 'bridgeERC20', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'renounceOwnership' - } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite( - { - abi: addressManagerABI, - address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'renounceOwnership', - ...config, - } as any - ) -} - -/** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"setAddress"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) - */ -export function useAddressManagerSetAddress< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof addressManagerAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof addressManagerABI, - 'setAddress' - >['request']['abi'], - 'setAddress', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'setAddress' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'setAddress' + functionName?: 'bridgeERC20' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: addressManagerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'setAddress', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerTransferOwnership< +export function useL1StandardBridgeBridgeErc20To< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof addressManagerAddress + TChainId extends number = keyof typeof l1StandardBridgeAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof addressManagerABI, - 'transferOwnership' + typeof l1StandardBridgeABI, + 'bridgeERC20To' >['request']['abi'], - 'transferOwnership', + 'bridgeERC20To', TMode > & { address?: Address chainId?: TChainId - functionName?: 'transferOwnership' + functionName?: 'bridgeERC20To' } : UseContractWriteConfig< - typeof addressManagerABI, - 'transferOwnership', + typeof l1StandardBridgeABI, + 'bridgeERC20To', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'transferOwnership' + functionName?: 'bridgeERC20To' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite( - { - abi: addressManagerABI, - address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'transferOwnership', - ...config, - } as any - ) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) - */ -export function usePrepareAddressManagerWrite( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: addressManagerABI, - address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - ...config, - } as UsePrepareContractWriteConfig) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"renounceOwnership"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) - */ -export function usePrepareAddressManagerRenounceOwnership( - config: Omit< - UsePrepareContractWriteConfig< - typeof addressManagerABI, - 'renounceOwnership' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: addressManagerABI, - address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'renounceOwnership', - ...config, - } as UsePrepareContractWriteConfig) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"setAddress"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) - */ -export function usePrepareAddressManagerSetAddress( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: addressManagerABI, - address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'setAddress', - ...config, - } as UsePrepareContractWriteConfig) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link addressManagerABI}__ and `functionName` set to `"transferOwnership"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) - */ -export function usePrepareAddressManagerTransferOwnership( - config: Omit< - UsePrepareContractWriteConfig< - typeof addressManagerABI, - 'transferOwnership' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: addressManagerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - functionName: 'transferOwnership', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20To', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any +export function useL1StandardBridgeBridgeEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'bridgeETH' + >['request']['abi'], + 'bridgeETH', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'bridgeETH' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeETH' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: addressManagerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETH', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"AddressSet"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerAddressSetEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any +export function useL1StandardBridgeBridgeEthTo< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'bridgeETHTo' + >['request']['abi'], + 'bridgeETHTo', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeETHTo' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'bridgeETHTo', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeETHTo' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: addressManagerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - eventName: 'AddressSet', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETHTo', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"OwnershipTransferred"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useAddressManagerOwnershipTransferredEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof addressManagerAddress } = {} as any +export function useL1StandardBridgeDepositErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositERC20' + >['request']['abi'], + 'depositERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositERC20' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositERC20' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: addressManagerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - addressManagerAddress[chainId as keyof typeof addressManagerAddress], - eventName: 'OwnershipTransferred', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20To"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerRead< - TFunctionName extends string, - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > +export function useL1StandardBridgeDepositErc20To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositERC20To' + >['request']['abi'], + 'depositERC20To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositERC20To' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositERC20To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositERC20To' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20To', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MESSAGE_VERSION"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerMessageVersion< - TFunctionName extends 'MESSAGE_VERSION', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > +export function useL1StandardBridgeDepositEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositETH' + >['request']['abi'], + 'depositETH', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'depositETH' } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositETH', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositETH' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'MESSAGE_VERSION', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETH', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_CALLDATA_OVERHEAD"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETHTo"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) - */ -export function useL1CrossDomainMessengerMinGasCalldataOverhead< - TFunctionName extends 'MIN_GAS_CALLDATA_OVERHEAD', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( - config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeDepositEthTo< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'depositETHTo' + >['request']['abi'], + 'depositETHTo', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositETHTo' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'depositETHTo', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositETHTo' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return useContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'MIN_GAS_CALLDATA_OVERHEAD', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETHTo', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerMinGasDynamicOverheadDenominator< - TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > +export function useL1StandardBridgeFinalizeBridgeErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20' + >['request']['abi'], + 'finalizeBridgeERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC20' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC20' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20', + TMode + >({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeERC20', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerMinGasDynamicOverheadNumerator< - TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > +export function useL1StandardBridgeFinalizeBridgeEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH' + >['request']['abi'], + 'finalizeBridgeETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeETH' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeETH' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH', + TMode + >({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeETH', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"OTHER_MESSENGER"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeERC20Withdrawal"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerOtherMessenger< - TFunctionName extends 'OTHER_MESSENGER', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > +export function useL1StandardBridgeFinalizeErc20Withdrawal< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal' + >['request']['abi'], + 'finalizeERC20Withdrawal', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeERC20Withdrawal' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeERC20Withdrawal' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal', + TMode + >({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'OTHER_MESSENGER', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeERC20Withdrawal', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"PORTAL"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeETHWithdrawal"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerPortal< - TFunctionName extends 'PORTAL', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > +export function useL1StandardBridgeFinalizeEthWithdrawal< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1StandardBridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal' + >['request']['abi'], + 'finalizeETHWithdrawal', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeETHWithdrawal' + } + : UseContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeETHWithdrawal' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return useContractWrite< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal', + TMode + >({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'PORTAL', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeETHWithdrawal', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CALL_OVERHEAD"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerRelayCallOverhead< - TFunctionName extends 'RELAY_CALL_OVERHEAD', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeWrite( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'RELAY_CALL_OVERHEAD', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CONSTANT_OVERHEAD"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerRelayConstantOverhead< - TFunctionName extends 'RELAY_CONSTANT_OVERHEAD', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeBridgeErc20( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'RELAY_CONSTANT_OVERHEAD', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_GAS_CHECK_BUFFER"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerRelayGasCheckBuffer< - TFunctionName extends 'RELAY_GAS_CHECK_BUFFER', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeBridgeErc20To( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'RELAY_GAS_CHECK_BUFFER', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeERC20To', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_RESERVED_GAS"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerRelayReservedGas< - TFunctionName extends 'RELAY_RESERVED_GAS', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeBridgeEth( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'RELAY_RESERVED_GAS', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETH', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"baseGas"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerBaseGas< - TFunctionName extends 'baseGas', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeBridgeEthTo( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'baseGas', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'bridgeETHTo', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"failedMessages"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerFailedMessages< - TFunctionName extends 'failedMessages', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeDepositErc20( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'failedMessages', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"messageNonce"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20To"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerMessageNonce< - TFunctionName extends 'messageNonce', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeDepositErc20To( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'messageNonce', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositERC20To', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"successfulMessages"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerSuccessfulMessages< - TFunctionName extends 'successfulMessages', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeDepositEth( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'successfulMessages', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETH', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"version"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETHTo"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeDepositEthTo( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'version', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'depositETHTo', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"xDomainMessageSender"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerXDomainMessageSender< - TFunctionName extends 'xDomainMessageSender', - TSelectData = ReadContractResult< - typeof l1CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1StandardBridgeFinalizeBridgeErc20( config: Omit< - UseContractReadConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TSelectData + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20' >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'xDomainMessageSender', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeERC20', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1CrossDomainMessengerAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1CrossDomainMessengerABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any +export function usePrepareL1StandardBridgeFinalizeBridgeEth( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof l1CrossDomainMessengerABI, - TFunctionName, - TMode - >({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeBridgeETH', ...config, - } as any) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeERC20Withdrawal"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerInitialize< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1CrossDomainMessengerAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1CrossDomainMessengerABI, - 'initialize' - >['request']['abi'], - 'initialize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } - : UseContractWriteConfig< - typeof l1CrossDomainMessengerABI, - 'initialize', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'initialize' - } = {} as any +export function usePrepareL1StandardBridgeFinalizeErc20Withdrawal( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof l1CrossDomainMessengerABI, - 'initialize', - TMode - >({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'initialize', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeERC20Withdrawal', ...config, - } as any) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeETHWithdrawal"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerRelayMessage< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1CrossDomainMessengerAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1CrossDomainMessengerABI, - 'relayMessage' - >['request']['abi'], - 'relayMessage', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'relayMessage' - } - : UseContractWriteConfig< - typeof l1CrossDomainMessengerABI, - 'relayMessage', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'relayMessage' - } = {} as any +export function usePrepareL1StandardBridgeFinalizeEthWithdrawal( + config: Omit< + UsePrepareContractWriteConfig< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof l1CrossDomainMessengerABI, - 'relayMessage', - TMode - >({ - abi: l1CrossDomainMessengerABI, + return usePrepareContractWrite({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'relayMessage', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + functionName: 'finalizeETHWithdrawal', ...config, - } as any) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerSendMessage< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1CrossDomainMessengerAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1CrossDomainMessengerABI, - 'sendMessage' - >['request']['abi'], - 'sendMessage', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'sendMessage' - } - : UseContractWriteConfig< - typeof l1CrossDomainMessengerABI, - 'sendMessage', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'sendMessage' - } = {} as any +export function useL1StandardBridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof l1CrossDomainMessengerABI, - 'sendMessage', - TMode - >({ - abi: l1CrossDomainMessengerABI, + return useContractEvent({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'sendMessage', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], ...config, - } as any) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeFinalized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function usePrepareL1CrossDomainMessengerWrite< - TFunctionName extends string ->( +export function useL1StandardBridgeErc20BridgeFinalizedEvent( config: Omit< - UsePrepareContractWriteConfig< - typeof l1CrossDomainMessengerABI, - TFunctionName - >, - 'abi' | 'address' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1CrossDomainMessengerABI, + return useContractEvent({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20BridgeFinalized', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeInitiated"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function usePrepareL1CrossDomainMessengerInitialize( +export function useL1StandardBridgeErc20BridgeInitiatedEvent( config: Omit< - UsePrepareContractWriteConfig< - typeof l1CrossDomainMessengerABI, - 'initialize' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1CrossDomainMessengerABI, + return useContractEvent({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'initialize', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20BridgeInitiated', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20DepositInitiated"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function usePrepareL1CrossDomainMessengerRelayMessage( +export function useL1StandardBridgeErc20DepositInitiatedEvent( config: Omit< - UsePrepareContractWriteConfig< - typeof l1CrossDomainMessengerABI, - 'relayMessage' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1CrossDomainMessengerABI, + return useContractEvent({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'relayMessage', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20DepositInitiated', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20WithdrawalFinalized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function usePrepareL1CrossDomainMessengerSendMessage( +export function useL1StandardBridgeErc20WithdrawalFinalizedEvent( config: Omit< - UsePrepareContractWriteConfig< - typeof l1CrossDomainMessengerABI, - 'sendMessage' + UseContractEventConfig< + typeof l1StandardBridgeABI, + 'ERC20WithdrawalFinalized' >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1CrossDomainMessengerABI, + return useContractEvent({ + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - functionName: 'sendMessage', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ERC20WithdrawalFinalized', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHBridgeFinalized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerEvent( +export function useL1StandardBridgeEthBridgeFinalizedEvent( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: l1CrossDomainMessengerABI, + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHBridgeFinalized', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"FailedRelayedMessage"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHBridgeInitiated"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerFailedRelayedMessageEvent( +export function useL1StandardBridgeEthBridgeInitiatedEvent( config: Omit< - UseContractEventConfig< - typeof l1CrossDomainMessengerABI, - 'FailedRelayedMessage' - >, + UseContractEventConfig, 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l1StandardBridgeABI, + address: + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHBridgeInitiated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHDepositInitiated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export function useL1StandardBridgeEthDepositInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: l1CrossDomainMessengerABI, + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - eventName: 'FailedRelayedMessage', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHDepositInitiated', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"Initialized"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHWithdrawalFinalized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) */ -export function useL1CrossDomainMessengerInitializedEvent( +export function useL1StandardBridgeEthWithdrawalFinalizedEvent( config: Omit< - UseContractEventConfig, + UseContractEventConfig< + typeof l1StandardBridgeABI, + 'ETHWithdrawalFinalized' + >, 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: l1CrossDomainMessengerABI, + abi: l1StandardBridgeABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - eventName: 'Initialized', + l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + eventName: 'ETHWithdrawalFinalized', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"RelayedMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1CrossDomainMessengerRelayedMessageEvent( +export function useL2OutputOracleRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1CrossDomainMessengerABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - eventName: 'RelayedMessage', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"SentMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"CHALLENGER"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1CrossDomainMessengerSentMessageEvent( +export function useL2OutputOracleChallenger< + TFunctionName extends 'CHALLENGER', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1CrossDomainMessengerABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - eventName: 'SentMessage', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'CHALLENGER', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__ and `eventName` set to `"SentMessageExtension1"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"FINALIZATION_PERIOD_SECONDS"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1CrossDomainMessengerSentMessageExtension1Event( +export function useL2OutputOracleFinalizationPeriodSeconds< + TFunctionName extends 'FINALIZATION_PERIOD_SECONDS', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig< - typeof l1CrossDomainMessengerABI, - 'SentMessageExtension1' - >, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1CrossDomainMessengerABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1CrossDomainMessengerAddress[ - chainId as keyof typeof l1CrossDomainMessengerAddress - ], - eventName: 'SentMessageExtension1', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'FINALIZATION_PERIOD_SECONDS', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"L2_BLOCK_TIME"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeRead< - TFunctionName extends string, - TSelectData = ReadContractResult +export function useL2OutputOracleL2BlockTime< + TFunctionName extends 'L2_BLOCK_TIME', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: l1Erc721BridgeABI, + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'L2_BLOCK_TIME', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"deposits"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"PROPOSER"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeDeposits< - TFunctionName extends 'deposits', - TSelectData = ReadContractResult +export function useL2OutputOracleProposer< + TFunctionName extends 'PROPOSER', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: l1Erc721BridgeABI, + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'deposits', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'PROPOSER', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"messenger"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"SUBMISSION_INTERVAL"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeMessenger< - TFunctionName extends 'messenger', - TSelectData = ReadContractResult +export function useL2OutputOracleSubmissionInterval< + TFunctionName extends 'SUBMISSION_INTERVAL', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: l1Erc721BridgeABI, + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'messenger', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'SUBMISSION_INTERVAL', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"computeL2Timestamp"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeOtherBridge< - TFunctionName extends 'otherBridge', - TSelectData = ReadContractResult +export function useL2OutputOracleComputeL2Timestamp< + TFunctionName extends 'computeL2Timestamp', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: l1Erc721BridgeABI, + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'otherBridge', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'computeL2Timestamp', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2Output"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult +export function useL2OutputOracleGetL2Output< + TFunctionName extends 'getL2Output', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: l1Erc721BridgeABI, + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'version', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'getL2Output', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2OutputAfter"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1Erc721BridgeAddress +export function useL2OutputOracleGetL2OutputAfter< + TFunctionName extends 'getL2OutputAfter', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1Erc721BridgeABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'getL2OutputAfter', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2OutputIndexAfter"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeBridgeErc721< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1Erc721BridgeAddress +export function useL2OutputOracleGetL2OutputIndexAfter< + TFunctionName extends 'getL2OutputIndexAfter', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1Erc721BridgeABI, - 'bridgeERC721' - >['request']['abi'], - 'bridgeERC721', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'bridgeERC721' - } - : UseContractWriteConfig< - typeof l1Erc721BridgeABI, - 'bridgeERC721', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'bridgeERC721' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'bridgeERC721', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'getL2OutputIndexAfter', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"latestBlockNumber"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeBridgeErc721To< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1Erc721BridgeAddress +export function useL2OutputOracleLatestBlockNumber< + TFunctionName extends 'latestBlockNumber', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1Erc721BridgeABI, - 'bridgeERC721To' - >['request']['abi'], - 'bridgeERC721To', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'bridgeERC721To' - } - : UseContractWriteConfig< - typeof l1Erc721BridgeABI, - 'bridgeERC721To', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'bridgeERC721To' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'bridgeERC721To', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'latestBlockNumber', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"latestOutputIndex"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeFinalizeBridgeErc721< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1Erc721BridgeAddress +export function useL2OutputOracleLatestOutputIndex< + TFunctionName extends 'latestOutputIndex', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1Erc721BridgeABI, - 'finalizeBridgeERC721' - >['request']['abi'], - 'finalizeBridgeERC721', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'finalizeBridgeERC721' - } - : UseContractWriteConfig< - typeof l1Erc721BridgeABI, - 'finalizeBridgeERC721', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'finalizeBridgeERC721' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof l1Erc721BridgeABI, - 'finalizeBridgeERC721', - TMode - >({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'finalizeBridgeERC721', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'latestOutputIndex', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"nextBlockNumber"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function usePrepareL1Erc721BridgeWrite( +export function useL2OutputOracleNextBlockNumber< + TFunctionName extends 'nextBlockNumber', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'nextBlockNumber', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"nextOutputIndex"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function usePrepareL1Erc721BridgeBridgeErc721( +export function useL2OutputOracleNextOutputIndex< + TFunctionName extends 'nextOutputIndex', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'bridgeERC721', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'nextOutputIndex', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"startingBlockNumber"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function usePrepareL1Erc721BridgeBridgeErc721To( +export function useL2OutputOracleStartingBlockNumber< + TFunctionName extends 'startingBlockNumber', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'bridgeERC721To', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'startingBlockNumber', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"startingTimestamp"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function usePrepareL1Erc721BridgeFinalizeBridgeErc721( +export function useL2OutputOracleStartingTimestamp< + TFunctionName extends 'startingTimestamp', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig< - typeof l1Erc721BridgeABI, - 'finalizeBridgeERC721' - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - functionName: 'finalizeBridgeERC721', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'startingTimestamp', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"version"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeEvent( +export function useL2OutputOracleVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1Erc721BridgeABI, + return useContractRead({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'version', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeErc721BridgeFinalizedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +export function useL2OutputOracleWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1Erc721BridgeABI, + return useContractWrite({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - eventName: 'ERC721BridgeFinalized', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"deleteL2Outputs"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1Erc721BridgeErc721BridgeInitiatedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1Erc721BridgeAddress } = {} as any +export function useL2OutputOracleDeleteL2Outputs< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + 'deleteL2Outputs' + >['request']['abi'], + 'deleteL2Outputs', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'deleteL2Outputs' + } + : UseContractWriteConfig< + typeof l2OutputOracleABI, + 'deleteL2Outputs', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'deleteL2Outputs' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1Erc721BridgeABI, + return useContractWrite({ + abi: l2OutputOracleABI, address: - l1Erc721BridgeAddress[chainId as keyof typeof l1Erc721BridgeAddress], - eventName: 'ERC721BridgeInitiated', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'deleteL2Outputs', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeRead< - TFunctionName extends string, - TSelectData = ReadContractResult +export function useL2OutputOracleInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress >( - config: Omit< - UseContractReadConfig< - typeof l1StandardBridgeABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1StandardBridgeABI, + return useContractWrite({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'initialize', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"deposits"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"proposeL2Output"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeDeposits< - TFunctionName extends 'deposits', - TSelectData = ReadContractResult +export function useL2OutputOracleProposeL2Output< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2OutputOracleAddress >( - config: Omit< - UseContractReadConfig< - typeof l1StandardBridgeABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2OutputOracleABI, + 'proposeL2Output' + >['request']['abi'], + 'proposeL2Output', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'proposeL2Output' + } + : UseContractWriteConfig< + typeof l2OutputOracleABI, + 'proposeL2Output', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'proposeL2Output' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1StandardBridgeABI, + return useContractWrite({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'deposits', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'proposeL2Output', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"l2TokenBridge"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeL2TokenBridge< - TFunctionName extends 'l2TokenBridge', - TSelectData = ReadContractResult ->( - config: Omit< - UseContractReadConfig< - typeof l1StandardBridgeABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function usePrepareL2OutputOracleWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'l2TokenBridge', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"messenger"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"deleteL2Outputs"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeMessenger< - TFunctionName extends 'messenger', - TSelectData = ReadContractResult ->( +export function usePrepareL2OutputOracleDeleteL2Outputs( config: Omit< - UseContractReadConfig< - typeof l1StandardBridgeABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'messenger', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'deleteL2Outputs', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"version"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult ->( +export function usePrepareL2OutputOracleInitialize( config: Omit< - UseContractReadConfig< - typeof l1StandardBridgeABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'version', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'initialize', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"proposeL2Output"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - TFunctionName, - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any +export function usePrepareL2OutputOracleProposeL2Output( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + functionName: 'proposeL2Output', ...config, - } as any) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeBridgeErc20< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'bridgeERC20' - >['request']['abi'], - 'bridgeERC20', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'bridgeERC20' - } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'bridgeERC20', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'bridgeERC20' - } = {} as any +export function useL2OutputOracleEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractEvent({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeERC20', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], ...config, - } as any) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"Initialized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeBridgeErc20To< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'bridgeERC20To' - >['request']['abi'], - 'bridgeERC20To', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'bridgeERC20To' - } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'bridgeERC20To', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'bridgeERC20To' - } = {} as any +export function useL2OutputOracleInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractEvent({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeERC20To', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + eventName: 'Initialized', ...config, - } as any) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"OutputProposed"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeBridgeEth< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'bridgeETH' - >['request']['abi'], - 'bridgeETH', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'bridgeETH' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'bridgeETH' - } = {} as any +export function useL2OutputOracleOutputProposedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractEvent({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeETH', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + eventName: 'OutputProposed', ...config, - } as any) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"OutputsDeleted"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) */ -export function useL1StandardBridgeBridgeEthTo< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'bridgeETHTo' - >['request']['abi'], - 'bridgeETHTo', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'bridgeETHTo' - } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'bridgeETHTo', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'bridgeETHTo' - } = {} as any +export function useL2OutputOracleOutputsDeletedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractEvent({ + abi: l2OutputOracleABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeETHTo', + l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + eventName: 'OutputsDeleted', ...config, - } as any) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function useL1StandardBridgeDepositErc20< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress +export function useOptimismMintableErc20FactoryRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc20FactoryABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'depositERC20' - >['request']['abi'], - 'depositERC20', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'depositERC20' - } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'depositERC20', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'depositERC20' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismMintableErc20FactoryABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositERC20', + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20To"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"BRIDGE"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function useL1StandardBridgeDepositErc20To< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress +export function useOptimismMintableErc20FactoryBridge< + TFunctionName extends 'BRIDGE', + TSelectData = ReadContractResult< + typeof optimismMintableErc20FactoryABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'depositERC20To' - >['request']['abi'], - 'depositERC20To', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'depositERC20To' - } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'depositERC20To', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'depositERC20To' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismMintableErc20FactoryABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositERC20To', + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'BRIDGE', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETH"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"version"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function useL1StandardBridgeDepositEth< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress +export function useOptimismMintableErc20FactoryVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc20FactoryABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'depositETH' - >['request']['abi'], - 'depositETH', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'depositETH' } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'depositETH', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'depositETH' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismMintableErc20FactoryABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositETH', + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'version', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETHTo"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function useL1StandardBridgeDepositEthTo< +export function useOptimismMintableErc20FactoryWrite< + TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'depositETHTo' + typeof optimismMintableErc20FactoryABI, + string >['request']['abi'], - 'depositETHTo', + TFunctionName, TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'depositETHTo' - } + > & { address?: Address; chainId?: TChainId } : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'depositETHTo', + typeof optimismMintableErc20FactoryABI, + TFunctionName, TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'depositETHTo' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l1StandardBridgeABI, + return useContractWrite< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc20FactoryABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositETHTo', + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createOptimismMintableERC20"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function useL1StandardBridgeFinalizeBridgeErc20< +export function useOptimismMintableErc20FactoryCreateOptimismMintableErc20< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'finalizeBridgeERC20' + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20' >['request']['abi'], - 'finalizeBridgeERC20', + 'createOptimismMintableERC20', TMode > & { address?: Address chainId?: TChainId - functionName?: 'finalizeBridgeERC20' + functionName?: 'createOptimismMintableERC20' } : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeBridgeERC20', + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'finalizeBridgeERC20' + functionName?: 'createOptimismMintableERC20' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractWrite< - typeof l1StandardBridgeABI, - 'finalizeBridgeERC20', + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20', TMode >({ - abi: l1StandardBridgeABI, + abi: optimismMintableErc20FactoryABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeBridgeERC20', + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createOptimismMintableERC20', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createStandardL2Token"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function useL1StandardBridgeFinalizeBridgeEth< +export function useOptimismMintableErc20FactoryCreateStandardL2Token< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress + TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'finalizeBridgeETH' + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token' >['request']['abi'], - 'finalizeBridgeETH', + 'createStandardL2Token', TMode > & { address?: Address chainId?: TChainId - functionName?: 'finalizeBridgeETH' + functionName?: 'createStandardL2Token' } : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeBridgeETH', + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'finalizeBridgeETH' + functionName?: 'createStandardL2Token' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractWrite< - typeof l1StandardBridgeABI, - 'finalizeBridgeETH', + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token', TMode >({ - abi: l1StandardBridgeABI, + abi: optimismMintableErc20FactoryABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeBridgeETH', + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createStandardL2Token', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeERC20Withdrawal"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) */ -export function useL1StandardBridgeFinalizeErc20Withdrawal< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress +export function usePrepareOptimismMintableErc20FactoryWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createOptimismMintableERC20"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function usePrepareOptimismMintableErc20FactoryCreateOptimismMintableErc20( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createOptimismMintableERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createStandardL2Token"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function usePrepareOptimismMintableErc20FactoryCreateStandardL2Token( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + functionName: 'createStandardL2Token', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `eventName` set to `"OptimismMintableERC20Created"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryOptimismMintableErc20CreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc20FactoryABI, + 'OptimismMintableERC20Created' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + eventName: 'OptimismMintableERC20Created', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `eventName` set to `"StandardL2TokenCreated"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export function useOptimismMintableErc20FactoryStandardL2TokenCreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc20FactoryABI, + 'StandardL2TokenCreated' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimismMintableErc20FactoryABI, + address: + optimismMintableErc20FactoryAddress[ + chainId as keyof typeof optimismMintableErc20FactoryAddress + ], + eventName: 'StandardL2TokenCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export function useOptimismPortalRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'finalizeERC20Withdrawal' - >['request']['abi'], - 'finalizeERC20Withdrawal', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'finalizeERC20Withdrawal' - } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeERC20Withdrawal', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'finalizeERC20Withdrawal' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof l1StandardBridgeABI, - 'finalizeERC20Withdrawal', - TMode - >({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeERC20Withdrawal', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeETHWithdrawal"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"GUARDIAN"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeFinalizeEthWithdrawal< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1StandardBridgeAddress +export function useOptimismPortalGuardian< + TFunctionName extends 'GUARDIAN', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1StandardBridgeABI, - 'finalizeETHWithdrawal' - >['request']['abi'], - 'finalizeETHWithdrawal', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'finalizeETHWithdrawal' - } - : UseContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeETHWithdrawal', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'finalizeETHWithdrawal' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof l1StandardBridgeABI, - 'finalizeETHWithdrawal', - TMode - >({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeETHWithdrawal', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'GUARDIAN', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"L2_ORACLE"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeWrite( +export function useOptimismPortalL2Oracle< + TFunctionName extends 'L2_ORACLE', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'L2_ORACLE', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"SYSTEM_CONFIG"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeBridgeErc20( +export function useOptimismPortalSystemConfig< + TFunctionName extends 'SYSTEM_CONFIG', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeERC20', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'SYSTEM_CONFIG', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeERC20To"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizedWithdrawals"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeBridgeErc20To( +export function useOptimismPortalFinalizedWithdrawals< + TFunctionName extends 'finalizedWithdrawals', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeERC20To', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'finalizedWithdrawals', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETH"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"isOutputFinalized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeBridgeEth( +export function useOptimismPortalIsOutputFinalized< + TFunctionName extends 'isOutputFinalized', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeETH', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'isOutputFinalized', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"bridgeETHTo"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"l2Sender"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeBridgeEthTo( +export function useOptimismPortalL2Sender< + TFunctionName extends 'l2Sender', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'bridgeETHTo', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'l2Sender', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"minimumGasLimit"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeDepositErc20( +export function useOptimismPortalMinimumGasLimit< + TFunctionName extends 'minimumGasLimit', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositERC20', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'minimumGasLimit', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositERC20To"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"params"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeDepositErc20To( +export function useOptimismPortalParams< + TFunctionName extends 'params', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositERC20To', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'params', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETH"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"paused"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeDepositEth( +export function useOptimismPortalPaused< + TFunctionName extends 'paused', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositETH', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'paused', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"depositETHTo"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"provenWithdrawals"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeDepositEthTo( +export function useOptimismPortalProvenWithdrawals< + TFunctionName extends 'provenWithdrawals', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'depositETHTo', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'provenWithdrawals', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeERC20"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"version"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeFinalizeBridgeErc20( +export function useOptimismPortalVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeBridgeERC20' - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractRead({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeBridgeERC20', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'version', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeBridgeETH"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeFinalizeBridgeEth( - config: Omit< - UsePrepareContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeBridgeETH' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeBridgeETH', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeERC20Withdrawal"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"depositTransaction"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeFinalizeErc20Withdrawal( - config: Omit< - UsePrepareContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeERC20Withdrawal' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalDepositTransaction< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'depositTransaction' + >['request']['abi'], + 'depositTransaction', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'depositTransaction' + } + : UseContractWriteConfig< + typeof optimismPortalABI, + 'depositTransaction', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'depositTransaction' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractWrite< + typeof optimismPortalABI, + 'depositTransaction', + TMode + >({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeERC20Withdrawal', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'depositTransaction', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `functionName` set to `"finalizeETHWithdrawal"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"donateETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function usePrepareL1StandardBridgeFinalizeEthWithdrawal( - config: Omit< - UsePrepareContractWriteConfig< - typeof l1StandardBridgeABI, - 'finalizeETHWithdrawal' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalDonateEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'donateETH' + >['request']['abi'], + 'donateETH', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'donateETH' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'donateETH' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l1StandardBridgeABI, + return useContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - functionName: 'finalizeETHWithdrawal', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'donateETH', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizeWithdrawalTransaction"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalFinalizeWithdrawalTransaction< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction' + >['request']['abi'], + 'finalizeWithdrawalTransaction', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeWithdrawalTransaction' + } + : UseContractWriteConfig< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeWithdrawalTransaction' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return useContractWrite< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction', + TMode + >({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'finalizeWithdrawalTransaction', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeFinalized"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeErc20BridgeFinalizedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return useContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ERC20BridgeFinalized', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'initialize', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20BridgeInitiated"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"pause"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeErc20BridgeInitiatedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalPause< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'pause' + >['request']['abi'], + 'pause', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'pause' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'pause' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return useContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ERC20BridgeInitiated', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'pause', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20DepositInitiated"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"proveWithdrawalTransaction"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeErc20DepositInitiatedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalProveWithdrawalTransaction< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'proveWithdrawalTransaction' + >['request']['abi'], + 'proveWithdrawalTransaction', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'proveWithdrawalTransaction' + } + : UseContractWriteConfig< + typeof optimismPortalABI, + 'proveWithdrawalTransaction', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'proveWithdrawalTransaction' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return useContractWrite< + typeof optimismPortalABI, + 'proveWithdrawalTransaction', + TMode + >({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ERC20DepositInitiated', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'proveWithdrawalTransaction', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ERC20WithdrawalFinalized"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"unpause"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeErc20WithdrawalFinalizedEvent( - config: Omit< - UseContractEventConfig< - typeof l1StandardBridgeABI, - 'ERC20WithdrawalFinalized' - >, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any +export function useOptimismPortalUnpause< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismPortalAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismPortalABI, + 'unpause' + >['request']['abi'], + 'unpause', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'unpause' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'unpause' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return useContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ERC20WithdrawalFinalized', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'unpause', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHBridgeFinalized"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeEthBridgeFinalizedEvent( +export function usePrepareOptimismPortalWrite( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ETHBridgeFinalized', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHBridgeInitiated"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"depositTransaction"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeEthBridgeInitiatedEvent( +export function usePrepareOptimismPortalDepositTransaction( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + UsePrepareContractWriteConfig< + typeof optimismPortalABI, + 'depositTransaction' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ETHBridgeInitiated', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'depositTransaction', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHDepositInitiated"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"donateETH"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeEthDepositInitiatedEvent( +export function usePrepareOptimismPortalDonateEth( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ETHDepositInitiated', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'donateETH', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1StandardBridgeABI}__ and `eventName` set to `"ETHWithdrawalFinalized"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizeWithdrawalTransaction"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL1StandardBridgeEthWithdrawalFinalizedEvent( +export function usePrepareOptimismPortalFinalizeWithdrawalTransaction( config: Omit< - UseContractEventConfig< - typeof l1StandardBridgeABI, - 'ETHWithdrawalFinalized' + UsePrepareContractWriteConfig< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction' >, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1StandardBridgeAddress } = {} as any + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l1StandardBridgeABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l1StandardBridgeAddress[chainId as keyof typeof l1StandardBridgeAddress], - eventName: 'ETHWithdrawalFinalized', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'finalizeWithdrawalTransaction', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleRead< - TFunctionName extends string, - TSelectData = ReadContractResult ->( +export function usePrepareOptimismPortalInitialize( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'initialize', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"CHALLENGER"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"pause"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleChallenger< - TFunctionName extends 'CHALLENGER', - TSelectData = ReadContractResult ->( +export function usePrepareOptimismPortalPause( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'CHALLENGER', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'pause', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"FINALIZATION_PERIOD_SECONDS"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"proveWithdrawalTransaction"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleFinalizationPeriodSeconds< - TFunctionName extends 'FINALIZATION_PERIOD_SECONDS', - TSelectData = ReadContractResult ->( +export function usePrepareOptimismPortalProveWithdrawalTransaction( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig< + typeof optimismPortalABI, + 'proveWithdrawalTransaction' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'FINALIZATION_PERIOD_SECONDS', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'proveWithdrawalTransaction', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"L2_BLOCK_TIME"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"unpause"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleL2BlockTime< - TFunctionName extends 'L2_BLOCK_TIME', - TSelectData = ReadContractResult ->( +export function usePrepareOptimismPortalUnpause( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return usePrepareContractWrite({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'L2_BLOCK_TIME', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + functionName: 'unpause', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"PROPOSER"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleProposer< - TFunctionName extends 'PROPOSER', - TSelectData = ReadContractResult ->( +export function useOptimismPortalEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return useContractEvent({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'PROPOSER', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"SUBMISSION_INTERVAL"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Initialized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleSubmissionInterval< - TFunctionName extends 'SUBMISSION_INTERVAL', - TSelectData = ReadContractResult ->( +export function useOptimismPortalInitializedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return useContractEvent({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'SUBMISSION_INTERVAL', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'Initialized', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"computeL2Timestamp"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Paused"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleComputeL2Timestamp< - TFunctionName extends 'computeL2Timestamp', - TSelectData = ReadContractResult ->( +export function useOptimismPortalPausedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return useContractEvent({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'computeL2Timestamp', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'Paused', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2Output"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"TransactionDeposited"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleGetL2Output< - TFunctionName extends 'getL2Output', - TSelectData = ReadContractResult ->( +export function useOptimismPortalTransactionDepositedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return useContractEvent({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'getL2Output', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'TransactionDeposited', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2OutputAfter"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Unpaused"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleGetL2OutputAfter< - TFunctionName extends 'getL2OutputAfter', - TSelectData = ReadContractResult ->( +export function useOptimismPortalUnpausedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return useContractEvent({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'getL2OutputAfter', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'Unpaused', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"getL2OutputIndexAfter"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"WithdrawalFinalized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleGetL2OutputIndexAfter< - TFunctionName extends 'getL2OutputIndexAfter', - TSelectData = ReadContractResult ->( +export function useOptimismPortalWithdrawalFinalizedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return useContractEvent({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'getL2OutputIndexAfter', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'WithdrawalFinalized', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"latestBlockNumber"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"WithdrawalProven"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) */ -export function useL2OutputOracleLatestBlockNumber< - TFunctionName extends 'latestBlockNumber', - TSelectData = ReadContractResult ->( +export function useOptimismPortalWithdrawalProvenEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimismPortalAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, + return useContractEvent({ + abi: optimismPortalABI, address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'latestBlockNumber', + optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + eventName: 'WithdrawalProven', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"latestOutputIndex"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link portalSenderABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function useL2OutputOracleLatestOutputIndex< - TFunctionName extends 'latestOutputIndex', - TSelectData = ReadContractResult +export function usePortalSenderRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof portalSenderAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'latestOutputIndex', + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"nextBlockNumber"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"PORTAL"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function useL2OutputOracleNextBlockNumber< - TFunctionName extends 'nextBlockNumber', - TSelectData = ReadContractResult +export function usePortalSenderPortal< + TFunctionName extends 'PORTAL', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof portalSenderAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'nextBlockNumber', + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + functionName: 'PORTAL', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"nextOutputIndex"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link portalSenderABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function useL2OutputOracleNextOutputIndex< - TFunctionName extends 'nextOutputIndex', - TSelectData = ReadContractResult +export function usePortalSenderWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof portalSenderAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof portalSenderABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'nextOutputIndex', + return useContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"startingBlockNumber"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"donate"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function useL2OutputOracleStartingBlockNumber< - TFunctionName extends 'startingBlockNumber', - TSelectData = ReadContractResult +export function usePortalSenderDonate< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof portalSenderAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof portalSenderABI, + 'donate' + >['request']['abi'], + 'donate', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'donate' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'donate' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'startingBlockNumber', + return useContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + functionName: 'donate', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"startingTimestamp"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link portalSenderABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) */ -export function useL2OutputOracleStartingTimestamp< - TFunctionName extends 'startingTimestamp', - TSelectData = ReadContractResult ->( +export function usePreparePortalSenderWrite( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof portalSenderAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'startingTimestamp', + return usePrepareContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"version"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"donate"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) - */ -export function useL2OutputOracleVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult ->( + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export function usePreparePortalSenderDonate( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof portalSenderAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'version', + return usePrepareContractWrite({ + abi: portalSenderABI, + address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + functionName: 'donate', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleWrite< +export function useProxyAdminRead< TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2OutputOracleAddress + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l2OutputOracleABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"deleteL2Outputs"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"addressManager"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleDeleteL2Outputs< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2OutputOracleAddress +export function useProxyAdminAddressManager< + TFunctionName extends 'addressManager', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l2OutputOracleABI, - 'deleteL2Outputs' - >['request']['abi'], - 'deleteL2Outputs', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'deleteL2Outputs' - } - : UseContractWriteConfig< - typeof l2OutputOracleABI, - 'deleteL2Outputs', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'deleteL2Outputs' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'deleteL2Outputs', + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'addressManager', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"getProxyAdmin"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleInitialize< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2OutputOracleAddress +export function useProxyAdminGetProxyAdmin< + TFunctionName extends 'getProxyAdmin', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l2OutputOracleABI, - 'initialize' - >['request']['abi'], - 'initialize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'initialize' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'initialize', + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'getProxyAdmin', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"proposeL2Output"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"getProxyImplementation"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleProposeL2Output< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2OutputOracleAddress +export function useProxyAdminGetProxyImplementation< + TFunctionName extends 'getProxyImplementation', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l2OutputOracleABI, - 'proposeL2Output' - >['request']['abi'], - 'proposeL2Output', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'proposeL2Output' - } - : UseContractWriteConfig< - typeof l2OutputOracleABI, - 'proposeL2Output', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'proposeL2Output' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'proposeL2Output', + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'getProxyImplementation', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"implementationName"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function usePrepareL2OutputOracleWrite( +export function useProxyAdminImplementationName< + TFunctionName extends 'implementationName', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'implementationName', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"deleteL2Outputs"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"isUpgrading"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function usePrepareL2OutputOracleDeleteL2Outputs( +export function useProxyAdminIsUpgrading< + TFunctionName extends 'isUpgrading', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'deleteL2Outputs', + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'isUpgrading', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"owner"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function usePrepareL2OutputOracleInitialize( +export function useProxyAdminOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'initialize', + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'owner', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2OutputOracleABI}__ and `functionName` set to `"proposeL2Output"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"proxyType"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function usePrepareL2OutputOracleProposeL2Output( +export function useProxyAdminProxyType< + TFunctionName extends 'proxyType', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - functionName: 'proposeL2Output', + return useContractRead({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'proxyType', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +export function useProxyAdminWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"Initialized"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"changeProxyAdmin"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleInitializedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +export function useProxyAdminChangeProxyAdmin< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'changeProxyAdmin' + >['request']['abi'], + 'changeProxyAdmin', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'changeProxyAdmin' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'changeProxyAdmin', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'changeProxyAdmin' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - eventName: 'Initialized', + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'changeProxyAdmin', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"OutputProposed"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"renounceOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleOutputProposedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +export function useProxyAdminRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'renounceOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'renounceOwnership' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - eventName: 'OutputProposed', + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'renounceOwnership', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2OutputOracleABI}__ and `eventName` set to `"OutputsDeleted"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddress"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useL2OutputOracleOutputsDeletedEvent( - config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l2OutputOracleAddress } = {} as any +export function useProxyAdminSetAddress< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setAddress' + >['request']['abi'], + 'setAddress', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setAddress' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setAddress' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: l2OutputOracleABI, - address: - l2OutputOracleAddress[chainId as keyof typeof l2OutputOracleAddress], - eventName: 'OutputsDeleted', + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddress', ...config, - } as UseContractEventConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddressManager"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryRead< - TFunctionName extends string, - TSelectData = ReadContractResult< - typeof optimismMintableErc20FactoryABI, - TFunctionName - > +export function useProxyAdminSetAddressManager< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress >( - config: Omit< - UseContractReadConfig< - typeof optimismMintableErc20FactoryABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setAddressManager' + >['request']['abi'], + 'setAddressManager', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setAddressManager' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'setAddressManager', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setAddressManager' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddressManager', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"BRIDGE"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setImplementationName"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryBridge< - TFunctionName extends 'BRIDGE', - TSelectData = ReadContractResult< - typeof optimismMintableErc20FactoryABI, - TFunctionName - > +export function useProxyAdminSetImplementationName< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress >( - config: Omit< - UseContractReadConfig< - typeof optimismMintableErc20FactoryABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setImplementationName' + >['request']['abi'], + 'setImplementationName', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setImplementationName' + } + : UseContractWriteConfig< + typeof proxyAdminABI, + 'setImplementationName', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setImplementationName' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - functionName: 'BRIDGE', - ...config, - } as UseContractReadConfig) + return useContractWrite( + { + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setImplementationName', + ...config, + } as any + ) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setProxyType"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult< - typeof optimismMintableErc20FactoryABI, - TFunctionName - > +export function useProxyAdminSetProxyType< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress >( - config: Omit< - UseContractReadConfig< - typeof optimismMintableErc20FactoryABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'setProxyType' + >['request']['abi'], + 'setProxyType', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setProxyType' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setProxyType' + } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - functionName: 'version', + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setProxyType', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setUpgrading"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryWrite< - TFunctionName extends string, +export function useProxyAdminSetUpgrading< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress + TChainId extends number = keyof typeof proxyAdminAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismMintableErc20FactoryABI, - string + typeof proxyAdminABI, + 'setUpgrading' >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig< - typeof optimismMintableErc20FactoryABI, - TFunctionName, + 'setUpgrading', TMode > & { + address?: Address + chainId?: TChainId + functionName?: 'setUpgrading' + } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId + functionName?: 'setUpgrading' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof optimismMintableErc20FactoryABI, - TFunctionName, - TMode - >({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setUpgrading', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createOptimismMintableERC20"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"transferOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryCreateOptimismMintableErc20< +export function useProxyAdminTransferOwnership< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress + TChainId extends number = keyof typeof proxyAdminAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismMintableErc20FactoryABI, - 'createOptimismMintableERC20' + typeof proxyAdminABI, + 'transferOwnership' >['request']['abi'], - 'createOptimismMintableERC20', + 'transferOwnership', TMode > & { address?: Address chainId?: TChainId - functionName?: 'createOptimismMintableERC20' + functionName?: 'transferOwnership' } : UseContractWriteConfig< - typeof optimismMintableErc20FactoryABI, - 'createOptimismMintableERC20', + typeof proxyAdminABI, + 'transferOwnership', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'createOptimismMintableERC20' + functionName?: 'transferOwnership' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof optimismMintableErc20FactoryABI, - 'createOptimismMintableERC20', - TMode - >({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - functionName: 'createOptimismMintableERC20', + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgrade"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function useProxyAdminUpgrade< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof proxyAdminAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof proxyAdminABI, + 'upgrade' + >['request']['abi'], + 'upgrade', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'upgrade' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'upgrade' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgrade', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createStandardL2Token"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgradeAndCall"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryCreateStandardL2Token< +export function useProxyAdminUpgradeAndCall< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismMintableErc20FactoryAddress + TChainId extends number = keyof typeof proxyAdminAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismMintableErc20FactoryABI, - 'createStandardL2Token' + typeof proxyAdminABI, + 'upgradeAndCall' >['request']['abi'], - 'createStandardL2Token', + 'upgradeAndCall', TMode > & { address?: Address chainId?: TChainId - functionName?: 'createStandardL2Token' + functionName?: 'upgradeAndCall' } - : UseContractWriteConfig< - typeof optimismMintableErc20FactoryABI, - 'createStandardL2Token', - TMode - > & { + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'createStandardL2Token' + functionName?: 'upgradeAndCall' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof optimismMintableErc20FactoryABI, - 'createStandardL2Token', - TMode - >({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - functionName: 'createStandardL2Token', + return useContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgradeAndCall', ...config, } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function usePrepareOptimismMintableErc20FactoryWrite< - TFunctionName extends string ->( +export function usePrepareProxyAdminWrite( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismMintableErc20FactoryABI, - TFunctionName - >, + UsePrepareContractWriteConfig, 'abi' | 'address' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createOptimismMintableERC20"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"changeProxyAdmin"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function usePrepareOptimismMintableErc20FactoryCreateOptimismMintableErc20( +export function usePrepareProxyAdminChangeProxyAdmin( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismMintableErc20FactoryABI, - 'createOptimismMintableERC20' - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - functionName: 'createOptimismMintableERC20', + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'changeProxyAdmin', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `functionName` set to `"createStandardL2Token"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"renounceOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function usePrepareOptimismMintableErc20FactoryCreateStandardL2Token( +export function usePrepareProxyAdminRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddress"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetAddress( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddress', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddressManager"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetAddressManager( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setAddressManager', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setImplementationName"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetImplementationName( config: Omit< UsePrepareContractWriteConfig< - typeof optimismMintableErc20FactoryABI, - 'createStandardL2Token' + typeof proxyAdminABI, + 'setImplementationName' >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - functionName: 'createStandardL2Token', + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setImplementationName', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setProxyType"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetProxyType( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setProxyType', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setUpgrading"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminSetUpgrading( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'setUpgrading', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export function usePrepareProxyAdminTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'transferOwnership', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgrade"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryEvent( +export function usePrepareProxyAdminUpgrade( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgrade', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `eventName` set to `"OptimismMintableERC20Created"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgradeAndCall"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryOptimismMintableErc20CreatedEvent( +export function usePrepareProxyAdminUpgradeAndCall( config: Omit< - UseContractEventConfig< - typeof optimismMintableErc20FactoryABI, - 'OptimismMintableERC20Created' - >, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - eventName: 'OptimismMintableERC20Created', + return usePrepareContractWrite({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + functionName: 'upgradeAndCall', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc20FactoryABI}__ and `eventName` set to `"StandardL2TokenCreated"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proxyAdminABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismMintableErc20FactoryStandardL2TokenCreatedEvent( +export function useProxyAdminEvent( config: Omit< - UseContractEventConfig< - typeof optimismMintableErc20FactoryABI, - 'StandardL2TokenCreated' - >, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismMintableErc20FactoryAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: optimismMintableErc20FactoryABI, - address: - optimismMintableErc20FactoryAddress[ - chainId as keyof typeof optimismMintableErc20FactoryAddress - ], - eventName: 'StandardL2TokenCreated', + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proxyAdminABI}__ and `eventName` set to `"OwnershipTransferred"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) */ -export function useOptimismPortalRead< - TFunctionName extends string, - TSelectData = ReadContractResult ->( +export function useProxyAdminOwnershipTransferredEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof proxyAdminAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + return useContractEvent({ + abi: proxyAdminABI, + address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + eventName: 'OwnershipTransferred', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"GUARDIAN"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalGuardian< - TFunctionName extends 'GUARDIAN', - TSelectData = ReadContractResult +export function useSystemConfigRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'GUARDIAN', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"L2_ORACLE"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"UNSAFE_BLOCK_SIGNER_SLOT"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalL2Oracle< - TFunctionName extends 'L2_ORACLE', - TSelectData = ReadContractResult +export function useSystemConfigUnsafeBlockSignerSlot< + TFunctionName extends 'UNSAFE_BLOCK_SIGNER_SLOT', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'L2_ORACLE', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'UNSAFE_BLOCK_SIGNER_SLOT', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"SYSTEM_CONFIG"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"batcherHash"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalSystemConfig< - TFunctionName extends 'SYSTEM_CONFIG', - TSelectData = ReadContractResult +export function useSystemConfigBatcherHash< + TFunctionName extends 'batcherHash', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'SYSTEM_CONFIG', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'batcherHash', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizedWithdrawals"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"gasLimit"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalFinalizedWithdrawals< - TFunctionName extends 'finalizedWithdrawals', - TSelectData = ReadContractResult +export function useSystemConfigGasLimit< + TFunctionName extends 'gasLimit', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'finalizedWithdrawals', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'gasLimit', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"isOutputFinalized"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"minimumGasLimit"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalIsOutputFinalized< - TFunctionName extends 'isOutputFinalized', - TSelectData = ReadContractResult +export function useSystemConfigMinimumGasLimit< + TFunctionName extends 'minimumGasLimit', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'isOutputFinalized', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'minimumGasLimit', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"l2Sender"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"overhead"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) - */ -export function useOptimismPortalL2Sender< - TFunctionName extends 'l2Sender', - TSelectData = ReadContractResult + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigOverhead< + TFunctionName extends 'overhead', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'l2Sender', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'overhead', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"minimumGasLimit"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"owner"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalMinimumGasLimit< - TFunctionName extends 'minimumGasLimit', - TSelectData = ReadContractResult +export function useSystemConfigOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'minimumGasLimit', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'owner', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"params"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"resourceConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalParams< - TFunctionName extends 'params', - TSelectData = ReadContractResult +export function useSystemConfigResourceConfig< + TFunctionName extends 'resourceConfig', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'params', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'resourceConfig', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"paused"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"scalar"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalPaused< - TFunctionName extends 'paused', - TSelectData = ReadContractResult +export function useSystemConfigScalar< + TFunctionName extends 'scalar', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'paused', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'scalar', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"provenWithdrawals"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"unsafeBlockSigner"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalProvenWithdrawals< - TFunctionName extends 'provenWithdrawals', - TSelectData = ReadContractResult +export function useSystemConfigUnsafeBlockSigner< + TFunctionName extends 'unsafeBlockSigner', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'provenWithdrawals', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'unsafeBlockSigner', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"version"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalVersion< +export function useSystemConfigVersion< TFunctionName extends 'version', - TSelectData = ReadContractResult + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalWrite< +export function useSystemConfigWrite< TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, + typeof systemConfigABI, string >['request']['abi'], TFunctionName, TMode > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId @@ -9865,1116 +18117,1113 @@ export function useOptimismPortalWrite< ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"depositTransaction"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalDepositTransaction< +export function useSystemConfigInitialize< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, - 'depositTransaction' + typeof systemConfigABI, + 'initialize' >['request']['abi'], - 'depositTransaction', + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export function useSystemConfigRenounceOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemConfigAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemConfigABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', TMode > & { address?: Address chainId?: TChainId - functionName?: 'depositTransaction' + functionName?: 'renounceOwnership' } : UseContractWriteConfig< - typeof optimismPortalABI, - 'depositTransaction', + typeof systemConfigABI, + 'renounceOwnership', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'depositTransaction' + functionName?: 'renounceOwnership' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof optimismPortalABI, - 'depositTransaction', - TMode - >({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'depositTransaction', + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'renounceOwnership', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"donateETH"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setBatcherHash"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalDonateEth< +export function useSystemConfigSetBatcherHash< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, - 'donateETH' + typeof systemConfigABI, + 'setBatcherHash' >['request']['abi'], - 'donateETH', + 'setBatcherHash', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setBatcherHash' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'setBatcherHash', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'donateETH' } - : UseContractWriteConfig & { + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'donateETH' + functionName?: 'setBatcherHash' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'donateETH', + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setBatcherHash', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizeWithdrawalTransaction"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalFinalizeWithdrawalTransaction< +export function useSystemConfigSetGasConfig< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, - 'finalizeWithdrawalTransaction' + typeof systemConfigABI, + 'setGasConfig' >['request']['abi'], - 'finalizeWithdrawalTransaction', + 'setGasConfig', TMode > & { address?: Address chainId?: TChainId - functionName?: 'finalizeWithdrawalTransaction' + functionName?: 'setGasConfig' } - : UseContractWriteConfig< - typeof optimismPortalABI, - 'finalizeWithdrawalTransaction', - TMode - > & { + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'finalizeWithdrawalTransaction' + functionName?: 'setGasConfig' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite< - typeof optimismPortalABI, - 'finalizeWithdrawalTransaction', - TMode - >({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'finalizeWithdrawalTransaction', + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasConfig', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasLimit"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalInitialize< +export function useSystemConfigSetGasLimit< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, - 'initialize' + typeof systemConfigABI, + 'setGasLimit' >['request']['abi'], - 'initialize', + 'setGasLimit', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'setGasLimit' + } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'initialize' + functionName?: 'setGasLimit' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'initialize', + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasLimit', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"pause"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setResourceConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalPause< +export function useSystemConfigSetResourceConfig< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, - 'pause' + typeof systemConfigABI, + 'setResourceConfig' >['request']['abi'], - 'pause', + 'setResourceConfig', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'pause' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'setResourceConfig' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'setResourceConfig', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'pause' + functionName?: 'setResourceConfig' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'pause', + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setResourceConfig', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"proveWithdrawalTransaction"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setUnsafeBlockSigner"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalProveWithdrawalTransaction< +export function useSystemConfigSetUnsafeBlockSigner< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, - 'proveWithdrawalTransaction' + typeof systemConfigABI, + 'setUnsafeBlockSigner' >['request']['abi'], - 'proveWithdrawalTransaction', + 'setUnsafeBlockSigner', TMode > & { address?: Address chainId?: TChainId - functionName?: 'proveWithdrawalTransaction' + functionName?: 'setUnsafeBlockSigner' } : UseContractWriteConfig< - typeof optimismPortalABI, - 'proveWithdrawalTransaction', + typeof systemConfigABI, + 'setUnsafeBlockSigner', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'proveWithdrawalTransaction' + functionName?: 'setUnsafeBlockSigner' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractWrite< - typeof optimismPortalABI, - 'proveWithdrawalTransaction', + typeof systemConfigABI, + 'setUnsafeBlockSigner', TMode >({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'proveWithdrawalTransaction', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setUnsafeBlockSigner', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"unpause"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"transferOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalUnpause< +export function useSystemConfigTransferOwnership< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismPortalAddress + TChainId extends number = keyof typeof systemConfigAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismPortalABI, - 'unpause' + typeof systemConfigABI, + 'transferOwnership' >['request']['abi'], - 'unpause', + 'transferOwnership', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'unpause' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof systemConfigABI, + 'transferOwnership', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'unpause' + functionName?: 'transferOwnership' } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'unpause', + return useContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'transferOwnership', ...config, } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) - */ -export function usePrepareOptimismPortalWrite( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - ...config, - } as UsePrepareContractWriteConfig) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"depositTransaction"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) - */ -export function usePrepareOptimismPortalDepositTransaction( - config: Omit< - UsePrepareContractWriteConfig< - typeof optimismPortalABI, - 'depositTransaction' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'depositTransaction', - ...config, - } as UsePrepareContractWriteConfig) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"donateETH"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function usePrepareOptimismPortalDonateEth( +export function usePrepareSystemConfigWrite( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'donateETH', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"finalizeWithdrawalTransaction"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function usePrepareOptimismPortalFinalizeWithdrawalTransaction( +export function usePrepareSystemConfigInitialize( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismPortalABI, - 'finalizeWithdrawalTransaction' - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'finalizeWithdrawalTransaction', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'initialize', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"renounceOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function usePrepareOptimismPortalInitialize( +export function usePrepareSystemConfigRenounceOwnership( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'initialize', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'renounceOwnership', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"pause"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setBatcherHash"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function usePrepareOptimismPortalPause( +export function usePrepareSystemConfigSetBatcherHash( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'pause', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setBatcherHash', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"proveWithdrawalTransaction"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function usePrepareOptimismPortalProveWithdrawalTransaction( +export function usePrepareSystemConfigSetGasConfig( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismPortalABI, - 'proveWithdrawalTransaction' - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'proveWithdrawalTransaction', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasConfig', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismPortalABI}__ and `functionName` set to `"unpause"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasLimit"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function usePrepareOptimismPortalUnpause( +export function usePrepareSystemConfigSetGasLimit( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - functionName: 'unpause', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setGasLimit', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setResourceConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalEvent( +export function usePrepareSystemConfigSetResourceConfig( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setResourceConfig', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Initialized"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setUnsafeBlockSigner"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalInitializedEvent( +export function usePrepareSystemConfigSetUnsafeBlockSigner( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + UsePrepareContractWriteConfig< + typeof systemConfigABI, + 'setUnsafeBlockSigner' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - eventName: 'Initialized', + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'setUnsafeBlockSigner', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Paused"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"transferOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalPausedEvent( +export function usePrepareSystemConfigTransferOwnership( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - eventName: 'Paused', + return usePrepareContractWrite({ + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + functionName: 'transferOwnership', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"TransactionDeposited"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalTransactionDepositedEvent( +export function useSystemConfigEvent( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - eventName: 'TransactionDeposited', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"Unpaused"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"ConfigUpdate"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalUnpausedEvent( +export function useSystemConfigConfigUpdateEvent( config: Omit< - UseContractEventConfig, + UseContractEventConfig, 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - eventName: 'Unpaused', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + eventName: 'ConfigUpdate', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"WithdrawalFinalized"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"Initialized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalWithdrawalFinalizedEvent( +export function useSystemConfigInitializedEvent( config: Omit< - UseContractEventConfig, + UseContractEventConfig, 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - eventName: 'WithdrawalFinalized', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + eventName: 'Initialized', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismPortalABI}__ and `eventName` set to `"WithdrawalProven"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"OwnershipTransferred"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) */ -export function useOptimismPortalWithdrawalProvenEvent( +export function useSystemConfigOwnershipTransferredEvent( config: Omit< - UseContractEventConfig, + UseContractEventConfig, 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof optimismPortalAddress } = {} as any + > & { chainId?: keyof typeof systemConfigAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractEvent({ - abi: optimismPortalABI, - address: - optimismPortalAddress[chainId as keyof typeof optimismPortalAddress], - eventName: 'WithdrawalProven', + abi: systemConfigABI, + address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + eventName: 'OwnershipTransferred', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link portalSenderABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePortalSenderRead< +export function useSystemDictatorRead< TFunctionName extends string, - TSelectData = ReadContractResult + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' - > & { chainId?: keyof typeof portalSenderAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: portalSenderABI, - address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"PORTAL"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePortalSenderPortal< - TFunctionName extends 'PORTAL', - TSelectData = ReadContractResult +export function useSystemDictatorExit_1NoReturnStep< + TFunctionName extends 'EXIT_1_NO_RETURN_STEP', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof portalSenderAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: portalSenderABI, - address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], - functionName: 'PORTAL', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'EXIT_1_NO_RETURN_STEP', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link portalSenderABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePortalSenderWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof portalSenderAddress +export function useSystemDictatorProxyTransferStep< + TFunctionName extends 'PROXY_TRANSFER_STEP', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof portalSenderABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: portalSenderABI, - address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'PROXY_TRANSFER_STEP', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"donate"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"config"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePortalSenderDonate< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof portalSenderAddress +export function useSystemDictatorConfig< + TFunctionName extends 'config', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof portalSenderABI, - 'donate' - >['request']['abi'], - 'donate', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'donate' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'donate' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: portalSenderABI, - address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], - functionName: 'donate', + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'config', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link portalSenderABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"currentStep"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePreparePortalSenderWrite( +export function useSystemDictatorCurrentStep< + TFunctionName extends 'currentStep', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof portalSenderAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: portalSenderABI, - address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'currentStep', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link portalSenderABI}__ and `functionName` set to `"donate"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"dynamicConfigSet"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePreparePortalSenderDonate( +export function useSystemDictatorDynamicConfigSet< + TFunctionName extends 'dynamicConfigSet', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof portalSenderAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: portalSenderABI, - address: portalSenderAddress[chainId as keyof typeof portalSenderAddress], - functionName: 'donate', + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'dynamicConfigSet', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exited"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminRead< - TFunctionName extends string, - TSelectData = ReadContractResult +export function useSystemDictatorExited< + TFunctionName extends 'exited', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'exited', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalized"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorFinalized< + TFunctionName extends 'finalized', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'finalized', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"addressManager"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminAddressManager< - TFunctionName extends 'addressManager', - TSelectData = ReadContractResult +export function useSystemDictatorL2OutputOracleDynamicConfig< + TFunctionName extends 'l2OutputOracleDynamicConfig', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'addressManager', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'l2OutputOracleDynamicConfig', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"getProxyAdmin"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminGetProxyAdmin< - TFunctionName extends 'getProxyAdmin', - TSelectData = ReadContractResult +export function useSystemDictatorOldL1CrossDomainMessenger< + TFunctionName extends 'oldL1CrossDomainMessenger', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'getProxyAdmin', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'oldL1CrossDomainMessenger', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"getProxyImplementation"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"optimismPortalDynamicConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminGetProxyImplementation< - TFunctionName extends 'getProxyImplementation', - TSelectData = ReadContractResult +export function useSystemDictatorOptimismPortalDynamicConfig< + TFunctionName extends 'optimismPortalDynamicConfig', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'getProxyImplementation', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'optimismPortalDynamicConfig', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"implementationName"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"owner"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminImplementationName< - TFunctionName extends 'implementationName', - TSelectData = ReadContractResult +export function useSystemDictatorOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'implementationName', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'owner', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"isUpgrading"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminIsUpgrading< - TFunctionName extends 'isUpgrading', - TSelectData = ReadContractResult +export function useSystemDictatorWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'isUpgrading', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"owner"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminOwner< - TFunctionName extends 'owner', - TSelectData = ReadContractResult +export function useSystemDictatorExit1< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'exit1' + >['request']['abi'], + 'exit1', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'exit1' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'exit1' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'owner', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'exit1', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"proxyType"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminProxyType< - TFunctionName extends 'proxyType', - TSelectData = ReadContractResult +export function useSystemDictatorFinalize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'finalize' + >['request']['abi'], + 'finalize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'finalize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalize' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'proxyType', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'finalize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + */ +export function useSystemDictatorInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'initialize', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminWrite< - TFunctionName extends string, +export function useSystemDictatorPhase1< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - string + typeof systemDictatorABI, + 'phase1' >['request']['abi'], - TFunctionName, + 'phase1', TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'phase1' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId + functionName?: 'phase1' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase1', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"changeProxyAdmin"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminChangeProxyAdmin< +export function useSystemDictatorPhase2< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'changeProxyAdmin' + typeof systemDictatorABI, + 'phase2' >['request']['abi'], - 'changeProxyAdmin', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'changeProxyAdmin' - } - : UseContractWriteConfig< - typeof proxyAdminABI, - 'changeProxyAdmin', + 'phase2', TMode - > & { + > & { address?: Address; chainId?: TChainId; functionName?: 'phase2' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'changeProxyAdmin' + functionName?: 'phase2' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'changeProxyAdmin', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase2', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminRenounceOwnership< +export function useSystemDictatorRenounceOwnership< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, + typeof systemDictatorABI, 'renounceOwnership' >['request']['abi'], 'renounceOwnership', @@ -10985,7 +19234,7 @@ export function useProxyAdminRenounceOwnership< functionName?: 'renounceOwnership' } : UseContractWriteConfig< - typeof proxyAdminABI, + typeof systemDictatorABI, 'renounceOwnership', TMode > & { @@ -10995,3341 +19244,3620 @@ export function useProxyAdminRenounceOwnership< functionName?: 'renounceOwnership' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'renounceOwnership', - ...config, - } as any) + return useContractWrite( + { + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'renounceOwnership', + ...config, + } as any + ) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddress"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminSetAddress< +export function useSystemDictatorStep1< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'setAddress' + typeof systemDictatorABI, + 'step1' >['request']['abi'], - 'setAddress', + 'step1', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'setAddress' } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'step1' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'setAddress' + functionName?: 'step1' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setAddress', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step1', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddressManager"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminSetAddressManager< +export function useSystemDictatorStep2< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'setAddressManager' + typeof systemDictatorABI, + 'step2' >['request']['abi'], - 'setAddressManager', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setAddressManager' - } - : UseContractWriteConfig< - typeof proxyAdminABI, - 'setAddressManager', + 'step2', TMode - > & { + > & { address?: Address; chainId?: TChainId; functionName?: 'step2' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'setAddressManager' + functionName?: 'step2' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setAddressManager', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step2', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setImplementationName"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) - */ -export function useProxyAdminSetImplementationName< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof proxyAdminABI, - 'setImplementationName' - >['request']['abi'], - 'setImplementationName', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setImplementationName' - } - : UseContractWriteConfig< - typeof proxyAdminABI, - 'setImplementationName', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'setImplementationName' - } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite( - { - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setImplementationName', - ...config, - } as any - ) -} - -/** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setProxyType"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminSetProxyType< +export function useSystemDictatorStep3< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'setProxyType' + typeof systemDictatorABI, + 'step3' >['request']['abi'], - 'setProxyType', + 'step3', TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setProxyType' - } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'step3' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'setProxyType' + functionName?: 'step3' } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setProxyType', +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step3', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setUpgrading"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminSetUpgrading< +export function useSystemDictatorStep4< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'setUpgrading' + typeof systemDictatorABI, + 'step4' >['request']['abi'], - 'setUpgrading', + 'step4', TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setUpgrading' - } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'step4' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'setUpgrading' + functionName?: 'step4' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setUpgrading', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step4', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminTransferOwnership< +export function useSystemDictatorStep5< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'transferOwnership' + typeof systemDictatorABI, + 'step5' >['request']['abi'], - 'transferOwnership', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'transferOwnership' - } - : UseContractWriteConfig< - typeof proxyAdminABI, - 'transferOwnership', + 'step5', TMode - > & { + > & { address?: Address; chainId?: TChainId; functionName?: 'step5' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'transferOwnership' + functionName?: 'step5' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'transferOwnership', + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step5', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgrade"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminUpgrade< +export function useSystemDictatorTransferOwnership< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'upgrade' + typeof systemDictatorABI, + 'transferOwnership' >['request']['abi'], - 'upgrade', + 'transferOwnership', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'upgrade' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof systemDictatorABI, + 'transferOwnership', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'upgrade' + functionName?: 'transferOwnership' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'upgrade', - ...config, - } as any) + return useContractWrite( + { + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'transferOwnership', + ...config, + } as any + ) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgradeAndCall"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminUpgradeAndCall< +export function useSystemDictatorUpdateDynamicConfig< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof proxyAdminAddress + TChainId extends number = keyof typeof systemDictatorAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof proxyAdminABI, - 'upgradeAndCall' + typeof systemDictatorABI, + 'updateDynamicConfig' >['request']['abi'], - 'upgradeAndCall', + 'updateDynamicConfig', TMode > & { address?: Address chainId?: TChainId - functionName?: 'upgradeAndCall' + functionName?: 'updateDynamicConfig' } - : UseContractWriteConfig & { + : UseContractWriteConfig< + typeof systemDictatorABI, + 'updateDynamicConfig', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'upgradeAndCall' + functionName?: 'updateDynamicConfig' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'upgradeAndCall', + return useContractWrite< + typeof systemDictatorABI, + 'updateDynamicConfig', + TMode + >({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'updateDynamicConfig', ...config, } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminWrite( +export function usePrepareSystemDictatorWrite( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"changeProxyAdmin"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminChangeProxyAdmin( +export function usePrepareSystemDictatorExit1( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'changeProxyAdmin', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'exit1', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminRenounceOwnership( +export function usePrepareSystemDictatorFinalize( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'renounceOwnership', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'finalize', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddress"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminSetAddress( +export function usePrepareSystemDictatorInitialize( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setAddress', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'initialize', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setAddressManager"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminSetAddressManager( +export function usePrepareSystemDictatorPhase1( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setAddressManager', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase1', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setImplementationName"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminSetImplementationName( +export function usePrepareSystemDictatorPhase2( config: Omit< - UsePrepareContractWriteConfig< - typeof proxyAdminABI, - 'setImplementationName' - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setImplementationName', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'phase2', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setProxyType"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminSetProxyType( +export function usePrepareSystemDictatorRenounceOwnership( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'renounceOwnership' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setProxyType', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'renounceOwnership', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"setUpgrading"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminSetUpgrading( +export function usePrepareSystemDictatorStep1( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'setUpgrading', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step1', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminTransferOwnership( +export function usePrepareSystemDictatorStep2( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'transferOwnership', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step2', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgrade"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminUpgrade( +export function usePrepareSystemDictatorStep3( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'upgrade', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step3', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link proxyAdminABI}__ and `functionName` set to `"upgradeAndCall"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function usePrepareProxyAdminUpgradeAndCall( +export function usePrepareSystemDictatorStep4( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - functionName: 'upgradeAndCall', + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step4', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proxyAdminABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminEvent( +export function usePrepareSystemDictatorStep5( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'step5', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proxyAdminABI}__ and `eventName` set to `"OwnershipTransferred"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useProxyAdminOwnershipTransferredEvent( +export function usePrepareSystemDictatorTransferOwnership( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof proxyAdminAddress } = {} as any + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'transferOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: proxyAdminABI, - address: proxyAdminAddress[chainId as keyof typeof proxyAdminAddress], - eventName: 'OwnershipTransferred', + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'transferOwnership', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useSystemConfigRead< - TFunctionName extends string, - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorUpdateDynamicConfig( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'updateDynamicConfig' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + functionName: 'updateDynamicConfig', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"UNSAFE_BLOCK_SIGNER_SLOT"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useSystemConfigUnsafeBlockSignerSlot< - TFunctionName extends 'UNSAFE_BLOCK_SIGNER_SLOT', - TSelectData = ReadContractResult ->( +export function useSystemDictatorEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'UNSAFE_BLOCK_SIGNER_SLOT', + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"batcherHash"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"Initialized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useSystemConfigBatcherHash< - TFunctionName extends 'batcherHash', - TSelectData = ReadContractResult ->( +export function useSystemDictatorInitializedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'batcherHash', + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + eventName: 'Initialized', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"gasLimit"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"OwnershipTransferred"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) */ -export function useSystemConfigGasLimit< - TFunctionName extends 'gasLimit', - TSelectData = ReadContractResult ->( +export function useSystemDictatorOwnershipTransferredEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'gasLimit', + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress[1], + eventName: 'OwnershipTransferred', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"minimumGasLimit"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigMinimumGasLimit< - TFunctionName extends 'minimumGasLimit', - TSelectData = ReadContractResult +export function useSystemDictatorGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'minimumGasLimit', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"overhead"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigOverhead< - TFunctionName extends 'overhead', - TSelectData = ReadContractResult +export function useSystemDictatorGoerliExit_1NoReturnStep< + TFunctionName extends 'EXIT_1_NO_RETURN_STEP', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'overhead', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'EXIT_1_NO_RETURN_STEP', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"owner"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigOwner< - TFunctionName extends 'owner', - TSelectData = ReadContractResult +export function useSystemDictatorGoerliProxyTransferStep< + TFunctionName extends 'PROXY_TRANSFER_STEP', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'owner', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'PROXY_TRANSFER_STEP', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"resourceConfig"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"config"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigResourceConfig< - TFunctionName extends 'resourceConfig', - TSelectData = ReadContractResult +export function useSystemDictatorGoerliConfig< + TFunctionName extends 'config', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'resourceConfig', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'config', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"scalar"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"currentStep"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigScalar< - TFunctionName extends 'scalar', - TSelectData = ReadContractResult +export function useSystemDictatorGoerliCurrentStep< + TFunctionName extends 'currentStep', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'scalar', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'currentStep', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"unsafeBlockSigner"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"dynamicConfigSet"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigUnsafeBlockSigner< - TFunctionName extends 'unsafeBlockSigner', - TSelectData = ReadContractResult +export function useSystemDictatorGoerliDynamicConfigSet< + TFunctionName extends 'dynamicConfigSet', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'unsafeBlockSigner', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'dynamicConfigSet', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalized"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult +export function useSystemDictatorGoerliFinalized< + TFunctionName extends 'finalized', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'version', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'finalized', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress +export function useSystemDictatorGoerliL2OutputOracleDynamicConfig< + TFunctionName extends 'l2OutputOracleDynamicConfig', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemConfigABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'l2OutputOracleDynamicConfig', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigInitialize< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress +export function useSystemDictatorGoerliOldL1CrossDomainMessenger< + TFunctionName extends 'oldL1CrossDomainMessenger', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemConfigABI, - 'initialize' - >['request']['abi'], - 'initialize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'initialize' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'initialize', + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'oldL1CrossDomainMessenger', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"owner"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigRenounceOwnership< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress +export function useSystemDictatorGoerliOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemConfigABI, - 'renounceOwnership' - >['request']['abi'], - 'renounceOwnership', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'renounceOwnership' - } - : UseContractWriteConfig< - typeof systemConfigABI, - 'renounceOwnership', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'renounceOwnership' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'renounceOwnership', + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'owner', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setBatcherHash"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigSetBatcherHash< +export function useSystemDictatorGoerliWrite< + TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress + TChainId extends number = keyof typeof systemDictatorGoerliAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemConfigABI, - 'setBatcherHash' + typeof systemDictatorGoerliABI, + string >['request']['abi'], - 'setBatcherHash', + TFunctionName, TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setBatcherHash' - } + > & { address?: Address; chainId?: TChainId } : UseContractWriteConfig< - typeof systemConfigABI, - 'setBatcherHash', + typeof systemDictatorGoerliABI, + TFunctionName, TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'setBatcherHash' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setBatcherHash', - ...config, - } as any) + return useContractWrite( + { + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + ...config, + } as any + ) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasConfig"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigSetGasConfig< +export function useSystemDictatorGoerliExit1< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress + TChainId extends number = keyof typeof systemDictatorGoerliAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemConfigABI, - 'setGasConfig' + typeof systemDictatorGoerliABI, + 'exit1' >['request']['abi'], - 'setGasConfig', + 'exit1', TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setGasConfig' - } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'exit1' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'setGasConfig' + functionName?: 'exit1' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setGasConfig', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'exit1', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasLimit"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. + * + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigSetGasLimit< +export function useSystemDictatorGoerliFinalize< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress + TChainId extends number = keyof typeof systemDictatorGoerliAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemConfigABI, - 'setGasLimit' + typeof systemDictatorGoerliABI, + 'finalize' >['request']['abi'], - 'setGasLimit', + 'finalize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'finalize' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'finalize', TMode > & { - address?: Address - chainId?: TChainId - functionName?: 'setGasLimit' - } - : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'setGasLimit' + functionName?: 'finalize' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setGasLimit', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'finalize', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setResourceConfig"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigSetResourceConfig< +export function useSystemDictatorGoerliInitialize< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress + TChainId extends number = keyof typeof systemDictatorGoerliAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemConfigABI, - 'setResourceConfig' + typeof systemDictatorGoerliABI, + 'initialize' >['request']['abi'], - 'setResourceConfig', + 'initialize', TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setResourceConfig' - } + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } : UseContractWriteConfig< - typeof systemConfigABI, - 'setResourceConfig', + typeof systemDictatorGoerliABI, + 'initialize', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'setResourceConfig' + functionName?: 'initialize' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setResourceConfig', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'initialize', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setUnsafeBlockSigner"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigSetUnsafeBlockSigner< +export function useSystemDictatorGoerliRenounceOwnership< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress + TChainId extends number = keyof typeof systemDictatorGoerliAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemConfigABI, - 'setUnsafeBlockSigner' + typeof systemDictatorGoerliABI, + 'renounceOwnership' >['request']['abi'], - 'setUnsafeBlockSigner', + 'renounceOwnership', TMode > & { address?: Address chainId?: TChainId - functionName?: 'setUnsafeBlockSigner' + functionName?: 'renounceOwnership' } : UseContractWriteConfig< - typeof systemConfigABI, - 'setUnsafeBlockSigner', + typeof systemDictatorGoerliABI, + 'renounceOwnership', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'setUnsafeBlockSigner' + functionName?: 'renounceOwnership' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id return useContractWrite< - typeof systemConfigABI, - 'setUnsafeBlockSigner', + typeof systemDictatorGoerliABI, + 'renounceOwnership', TMode >({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setUnsafeBlockSigner', + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'renounceOwnership', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigTransferOwnership< +export function useSystemDictatorGoerliStep1< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemConfigAddress + TChainId extends number = keyof typeof systemDictatorGoerliAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemConfigABI, - 'transferOwnership' + typeof systemDictatorGoerliABI, + 'step1' >['request']['abi'], - 'transferOwnership', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'transferOwnership' - } - : UseContractWriteConfig< - typeof systemConfigABI, - 'transferOwnership', + 'step1', TMode - > & { + > & { address?: Address; chainId?: TChainId; functionName?: 'step1' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'transferOwnership' + functionName?: 'step1' } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'transferOwnership', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step1', ...config, } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) - */ -export function usePrepareSystemConfigWrite( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - ...config, - } as UsePrepareContractWriteConfig) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"initialize"`. - * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) - */ -export function usePrepareSystemConfigInitialize( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any -) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'initialize', - ...config, - } as UsePrepareContractWriteConfig) -} - -/** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function usePrepareSystemConfigRenounceOwnership( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any +export function useSystemDictatorGoerliStep2< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step2' + >['request']['abi'], + 'step2', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step2' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step2' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'renounceOwnership', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step2', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setBatcherHash"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function usePrepareSystemConfigSetBatcherHash( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any +export function useSystemDictatorGoerliStep3< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step3' + >['request']['abi'], + 'step3', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step3' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step3' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setBatcherHash', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step3', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasConfig"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function usePrepareSystemConfigSetGasConfig( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any +export function useSystemDictatorGoerliStep4< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step4' + >['request']['abi'], + 'step4', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step4' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step4' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setGasConfig', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step4', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setGasLimit"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function usePrepareSystemConfigSetGasLimit( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any +export function useSystemDictatorGoerliStep5< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step5' + >['request']['abi'], + 'step5', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step5' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step5' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setGasLimit', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step5', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setResourceConfig"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function usePrepareSystemConfigSetResourceConfig( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any +export function useSystemDictatorGoerliStep6< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step6' + >['request']['abi'], + 'step6', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'step6' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'step6' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setResourceConfig', + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step6', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"setUnsafeBlockSigner"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function usePrepareSystemConfigSetUnsafeBlockSigner( - config: Omit< - UsePrepareContractWriteConfig< - typeof systemConfigABI, - 'setUnsafeBlockSigner' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any +export function useSystemDictatorGoerliTransferOwnership< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferOwnership' + } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'transferOwnership', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferOwnership' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'setUnsafeBlockSigner', + return useContractWrite< + typeof systemDictatorGoerliABI, + 'transferOwnership', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'transferOwnership', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemConfigABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function usePrepareSystemConfigTransferOwnership( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any +export function useSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof systemDictatorGoerliAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig' + >['request']['abi'], + 'updateL2OutputOracleDynamicConfig', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'updateL2OutputOracleDynamicConfig' + } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'updateL2OutputOracleDynamicConfig' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - functionName: 'transferOwnership', + return useContractWrite< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'updateL2OutputOracleDynamicConfig', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigEvent( +export function usePrepareSystemDictatorGoerliWrite< + TFunctionName extends string +>( config: Omit< - UseContractEventConfig, + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + TFunctionName + >, 'abi' | 'address' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"ConfigUpdate"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigConfigUpdateEvent( +export function usePrepareSystemDictatorGoerliExit1( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - eventName: 'ConfigUpdate', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'exit1', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"Initialized"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigInitializedEvent( +export function usePrepareSystemDictatorGoerliFinalize( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - eventName: 'Initialized', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'finalize', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemConfigABI}__ and `eventName` set to `"OwnershipTransferred"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. * - * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) - * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemConfigOwnershipTransferredEvent( +export function usePrepareSystemDictatorGoerliInitialize( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof systemConfigAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: systemConfigABI, - address: systemConfigAddress[chainId as keyof typeof systemConfigAddress], - eventName: 'OwnershipTransferred', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'initialize', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorRead< - TFunctionName extends string, - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliRenounceOwnership( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'renounceOwnership' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'renounceOwnership', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorExit_1NoReturnStep< - TFunctionName extends 'EXIT_1_NO_RETURN_STEP', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliStep1( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'EXIT_1_NO_RETURN_STEP', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step1', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorProxyTransferStep< - TFunctionName extends 'PROXY_TRANSFER_STEP', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliStep2( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'PROXY_TRANSFER_STEP', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step2', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"config"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorConfig< - TFunctionName extends 'config', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliStep3( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'config', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step3', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"currentStep"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorCurrentStep< - TFunctionName extends 'currentStep', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliStep4( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'currentStep', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step4', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"dynamicConfigSet"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorDynamicConfigSet< - TFunctionName extends 'dynamicConfigSet', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliStep5( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'dynamicConfigSet', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step5', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exited"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorExited< - TFunctionName extends 'exited', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliStep6( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'exited', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'step6', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalized"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorFinalized< - TFunctionName extends 'finalized', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliTransferOwnership( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'transferOwnership' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'finalized', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'transferOwnership', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorL2OutputOracleDynamicConfig< - TFunctionName extends 'l2OutputOracleDynamicConfig', - TSelectData = ReadContractResult ->( +export function usePrepareSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'l2OutputOracleDynamicConfig', + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + functionName: 'updateL2OutputOracleDynamicConfig', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorOldL1CrossDomainMessenger< - TFunctionName extends 'oldL1CrossDomainMessenger', - TSelectData = ReadContractResult ->( +export function useSystemDictatorGoerliEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'oldL1CrossDomainMessenger', + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"optimismPortalDynamicConfig"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"Initialized"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorOptimismPortalDynamicConfig< - TFunctionName extends 'optimismPortalDynamicConfig', - TSelectData = ReadContractResult ->( +export function useSystemDictatorGoerliInitializedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'optimismPortalDynamicConfig', + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + eventName: 'Initialized', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"owner"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"OwnershipTransferred"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) */ -export function useSystemDictatorOwner< - TFunctionName extends 'owner', - TSelectData = ReadContractResult ->( +export function useSystemDictatorGoerliOwnershipTransferredEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UseContractEventConfig< + typeof systemDictatorGoerliABI, + 'OwnershipTransferred' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'owner', + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress[5], + eventName: 'OwnershipTransferred', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorWrite< +export function useTeleportrWithdrawerRead< TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"data"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorExit1< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress +export function useTeleportrWithdrawerData< + TFunctionName extends 'data', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorABI, - 'exit1' - >['request']['abi'], - 'exit1', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'exit1' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'exit1' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'exit1', + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'data', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"owner"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorFinalize< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress +export function useTeleportrWithdrawerOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorABI, - 'finalize' - >['request']['abi'], - 'finalize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'finalize' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'finalize' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'finalize', + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'owner', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"recipient"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorInitialize< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress +export function useTeleportrWithdrawerRecipient< + TFunctionName extends 'recipient', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorABI, - 'initialize' - >['request']['abi'], - 'initialize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'initialize' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'recipient', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"teleportr"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerTeleportr< + TFunctionName extends 'teleportr', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'initialize', + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'teleportr', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorPhase1< +export function useTeleportrWithdrawerWrite< + TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'phase1' + typeof teleportrWithdrawerABI, + string >['request']['abi'], - 'phase1', + TFunctionName, TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'phase1' } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'phase1' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'phase1', + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"CALL"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorPhase2< +export function useTeleportrWithdrawerCall< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'phase2' + typeof teleportrWithdrawerABI, + 'CALL' >['request']['abi'], - 'phase2', + 'CALL', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'phase2' } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'CALL' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'phase2' + functionName?: 'CALL' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'phase2', + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'CALL', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"DELEGATECALL"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorRenounceOwnership< +export function useTeleportrWithdrawerDelegatecall< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'renounceOwnership' + typeof teleportrWithdrawerABI, + 'DELEGATECALL' >['request']['abi'], - 'renounceOwnership', + 'DELEGATECALL', TMode > & { address?: Address chainId?: TChainId - functionName?: 'renounceOwnership' + functionName?: 'DELEGATECALL' } : UseContractWriteConfig< - typeof systemDictatorABI, - 'renounceOwnership', + typeof teleportrWithdrawerABI, + 'DELEGATECALL', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'renounceOwnership' + functionName?: 'DELEGATECALL' } = {} as any ) { - return useContractWrite( + return useContractWrite( { - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'renounceOwnership', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'DELEGATECALL', ...config, } as any ) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setData"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorStep1< +export function useTeleportrWithdrawerSetData< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'step1' + typeof teleportrWithdrawerABI, + 'setData' >['request']['abi'], - 'step1', + 'setData', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step1' } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'setData' } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setData', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'step1' + functionName?: 'setData' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step1', + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setData', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setOwner"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorStep2< +export function useTeleportrWithdrawerSetOwner< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'step2' + typeof teleportrWithdrawerABI, + 'setOwner' >['request']['abi'], - 'step2', + 'setOwner', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step2' } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'setOwner' } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setOwner', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'step2' + functionName?: 'setOwner' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step2', + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setOwner', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setRecipient"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorStep3< +export function useTeleportrWithdrawerSetRecipient< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'step3' + typeof teleportrWithdrawerABI, + 'setRecipient' >['request']['abi'], - 'step3', + 'setRecipient', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step3' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'setRecipient' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setRecipient', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'step3' + functionName?: 'setRecipient' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step3', - ...config, - } as any) + return useContractWrite( + { + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setRecipient', + ...config, + } as any + ) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setTeleportr"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorStep4< +export function useTeleportrWithdrawerSetTeleportr< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'step4' + typeof teleportrWithdrawerABI, + 'setTeleportr' >['request']['abi'], - 'step4', + 'setTeleportr', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step4' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'setTeleportr' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setTeleportr', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'step4' + functionName?: 'setTeleportr' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step4', + return useContractWrite( + { + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setTeleportr', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWithdrawErc20< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'withdrawERC20' + >['request']['abi'], + 'withdrawERC20', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC20' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawERC20', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC20' + } = {} as any +) { + return useContractWrite< + typeof teleportrWithdrawerABI, + 'withdrawERC20', + TMode + >({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawERC20', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawERC721"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorStep5< +export function useTeleportrWithdrawerWithdrawErc721< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'step5' + typeof teleportrWithdrawerABI, + 'withdrawERC721' >['request']['abi'], - 'step5', + 'withdrawERC721', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step5' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC721' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawERC721', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'step5' + functionName?: 'withdrawERC721' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step5', + return useContractWrite< + typeof teleportrWithdrawerABI, + 'withdrawERC721', + TMode + >({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawERC721', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawETH"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorTransferOwnership< +export function useTeleportrWithdrawerWithdrawEth< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'transferOwnership' + typeof teleportrWithdrawerABI, + 'withdrawETH' >['request']['abi'], - 'transferOwnership', + 'withdrawETH', TMode > & { address?: Address chainId?: TChainId - functionName?: 'transferOwnership' + functionName?: 'withdrawETH' } : UseContractWriteConfig< - typeof systemDictatorABI, - 'transferOwnership', + typeof teleportrWithdrawerABI, + 'withdrawETH', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'transferOwnership' + functionName?: 'withdrawETH' } = {} as any ) { - return useContractWrite( - { - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'transferOwnership', - ...config, - } as any - ) + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawETH', + ...config, + } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawFromTeleportr"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function useSystemDictatorUpdateDynamicConfig< +export function useTeleportrWithdrawerWithdrawFromTeleportr< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorAddress + TChainId extends number = keyof typeof teleportrWithdrawerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorABI, - 'updateDynamicConfig' + typeof teleportrWithdrawerABI, + 'withdrawFromTeleportr' >['request']['abi'], - 'updateDynamicConfig', + 'withdrawFromTeleportr', TMode > & { address?: Address chainId?: TChainId - functionName?: 'updateDynamicConfig' + functionName?: 'withdrawFromTeleportr' } : UseContractWriteConfig< - typeof systemDictatorABI, - 'updateDynamicConfig', + typeof teleportrWithdrawerABI, + 'withdrawFromTeleportr', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'updateDynamicConfig' + functionName?: 'withdrawFromTeleportr' } = {} as any ) { - return useContractWrite< - typeof systemDictatorABI, - 'updateDynamicConfig', - TMode - >({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'updateDynamicConfig', + return useContractWrite< + typeof teleportrWithdrawerABI, + 'withdrawFromTeleportr', + TMode + >({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawFromTeleportr', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'CALL', ...config, - } as any) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"DELEGATECALL"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorWrite( +export function usePrepareTeleportrWithdrawerDelegatecall( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'DELEGATECALL' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'DELEGATECALL', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setData"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorExit1( +export function usePrepareTeleportrWithdrawerSetData( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'exit1', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setData', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setOwner"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorFinalize( +export function usePrepareTeleportrWithdrawerSetOwner( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'finalize', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setOwner', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setRecipient"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorInitialize( +export function usePrepareTeleportrWithdrawerSetRecipient( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setRecipient' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'initialize', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setRecipient', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setTeleportr"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorPhase1( +export function usePrepareTeleportrWithdrawerSetTeleportr( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setTeleportr' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'phase1', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setTeleportr', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawERC20"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorPhase2( +export function usePrepareTeleportrWithdrawerWithdrawErc20( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawERC20' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'phase2', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawERC20', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawERC721"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorRenounceOwnership( +export function usePrepareTeleportrWithdrawerWithdrawErc721( config: Omit< UsePrepareContractWriteConfig< - typeof systemDictatorABI, - 'renounceOwnership' + typeof teleportrWithdrawerABI, + 'withdrawERC721' >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'renounceOwnership', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawERC721', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawETH"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorStep1( +export function usePrepareTeleportrWithdrawerWithdrawEth( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step1', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawETH', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawFromTeleportr"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) */ -export function usePrepareSystemDictatorStep2( +export function usePrepareTeleportrWithdrawerWithdrawFromTeleportr( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawFromTeleportr' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step2', + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawFromTeleportr', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractEvent({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `eventName` set to `"OwnerUpdated"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerOwnerUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractEvent({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + eventName: 'OwnerUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `eventName` set to `"ReceivedETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerReceivedEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractEvent({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + eventName: 'ReceivedETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `eventName` set to `"WithdrewERC20"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWithdrewErc20Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractEvent({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + eventName: 'WithdrewERC20', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `eventName` set to `"WithdrewERC721"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWithdrewErc721Event( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractEvent({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + eventName: 'WithdrewERC721', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `eventName` set to `"WithdrewETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWithdrewEthEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractEvent({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + eventName: 'WithdrewETH', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link attestationStationABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export function useAttestationStationRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof attestationStationABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link attestationStationABI}__ and `functionName` set to `"attestations"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export function useAttestationStationAttestations< + TFunctionName extends 'attestations', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof attestationStationABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + functionName: 'attestations', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link attestationStationABI}__ and `functionName` set to `"version"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export function useAttestationStationVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof attestationStationABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link attestationStationABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + */ +export function useAttestationStationWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof attestationStationAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof attestationStationABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof attestationStationABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link attestationStationABI}__ and `functionName` set to `"attest"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function usePrepareSystemDictatorStep3( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any +export function useAttestationStationAttest< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof attestationStationAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof attestationStationABI, + 'attest' + >['request']['abi'], + 'attest', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'attest' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'attest' + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step3', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + functionName: 'attest', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link attestationStationABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function usePrepareSystemDictatorStep4( +export function usePrepareAttestationStationWrite( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step4', + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link attestationStationABI}__ and `functionName` set to `"attest"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function usePrepareSystemDictatorStep5( +export function usePrepareAttestationStationAttest( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof attestationStationAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'step5', + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + functionName: 'attest', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link attestationStationABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function usePrepareSystemDictatorTransferOwnership( +export function useAttestationStationEvent( config: Omit< - UsePrepareContractWriteConfig< - typeof systemDictatorABI, - 'transferOwnership' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'transferOwnership', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link attestationStationABI}__ and `eventName` set to `"AttestationCreated"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0xEE36eaaD94d1Cc1d0eccaDb55C38bFfB6Be06C77) */ -export function usePrepareSystemDictatorUpdateDynamicConfig( +export function useAttestationStationAttestationCreatedEvent( config: Omit< - UsePrepareContractWriteConfig< - typeof systemDictatorABI, - 'updateDynamicConfig' - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - functionName: 'updateDynamicConfig', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + eventName: 'AttestationCreated', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorEvent( +export function useL2Erc721BridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, + UseContractReadConfig, 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractEvent({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"Initialized"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"messenger"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorInitializedEvent( +export function useL2Erc721BridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractEvent({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - eventName: 'Initialized', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'messenger', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"OwnershipTransferred"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. * - * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorOwnershipTransferredEvent( +export function useL2Erc721BridgeOtherBridge< + TFunctionName extends 'otherBridge', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof systemDictatorAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractEvent({ - abi: systemDictatorABI, - address: systemDictatorAddress[1], - eventName: 'OwnershipTransferred', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'otherBridge', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliRead< - TFunctionName extends string, - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > +export function useL2Erc721BridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliExit_1NoReturnStep< - TFunctionName extends 'EXIT_1_NO_RETURN_STEP', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > +export function useL2Erc721BridgeWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'bridgeERC721' + >['request']['abi'], + 'bridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'bridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721' + } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'EXIT_1_NO_RETURN_STEP', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliProxyTransferStep< - TFunctionName extends 'PROXY_TRANSFER_STEP', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > +export function useL2Erc721BridgeBridgeErc721To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'bridgeERC721To' + >['request']['abi'], + 'bridgeERC721To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721To' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'bridgeERC721To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721To' + } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'PROXY_TRANSFER_STEP', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721To', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"config"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliConfig< - TFunctionName extends 'config', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > +export function useL2Erc721BridgeFinalizeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress >( - config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' + >['request']['abi'], + 'finalizeBridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'config', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + >({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'finalizeBridgeERC721', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"currentStep"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliCurrentStep< - TFunctionName extends 'currentStep', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > ->( +export function usePrepareL2Erc721BridgeWrite( config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'currentStep', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"dynamicConfigSet"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliDynamicConfigSet< - TFunctionName extends 'dynamicConfigSet', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > ->( +export function usePrepareL2Erc721BridgeBridgeErc721( config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'dynamicConfigSet', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalized"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliFinalized< - TFunctionName extends 'finalized', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > ->( +export function usePrepareL2Erc721BridgeBridgeErc721To( config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'finalized', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721To', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. - * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) - */ -export function useSystemDictatorGoerliL2OutputOracleDynamicConfig< - TFunctionName extends 'l2OutputOracleDynamicConfig', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > ->( + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeFinalizeBridgeErc721( config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData + UsePrepareContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'l2OutputOracleDynamicConfig', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'finalizeBridgeERC721', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliOldL1CrossDomainMessenger< - TFunctionName extends 'oldL1CrossDomainMessenger', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > ->( +export function useL2Erc721BridgeEvent( config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'oldL1CrossDomainMessenger', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"owner"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliOwner< - TFunctionName extends 'owner', - TSelectData = ReadContractResult< - typeof systemDictatorGoerliABI, - TFunctionName - > ->( +export function useL2Erc721BridgeErc721BridgeFinalizedEvent( config: Omit< - UseContractReadConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractRead({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'owner', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + eventName: 'ERC721BridgeFinalized', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000014) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) */ -export function useSystemDictatorGoerliWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress ->( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig< - typeof systemDictatorGoerliABI, - TFunctionName, - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any +export function useL2Erc721BridgeErc721BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any ) { - return useContractWrite( - { - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - ...config, - } as any - ) + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + eventName: 'ERC721BridgeInitiated', + ...config, + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliExit1< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress +export function useMintManagerRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'exit1' - >['request']['abi'], - 'exit1', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'exit1' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'exit1' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'exit1', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"DENOMINATOR"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliFinalize< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress +export function useMintManagerDenominator< + TFunctionName extends 'DENOMINATOR', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'finalize' - >['request']['abi'], - 'finalize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'finalize' } - : UseContractWriteConfig< - typeof systemDictatorGoerliABI, - 'finalize', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'finalize' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'finalize', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'DENOMINATOR', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"MINT_CAP"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliInitialize< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress +export function useMintManagerMintCap< + TFunctionName extends 'MINT_CAP', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'initialize' - >['request']['abi'], - 'initialize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } - : UseContractWriteConfig< - typeof systemDictatorGoerliABI, - 'initialize', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'initialize' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'initialize', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'MINT_CAP', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"MINT_PERIOD"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliRenounceOwnership< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress +export function useMintManagerMintPeriod< + TFunctionName extends 'MINT_PERIOD', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'renounceOwnership' - >['request']['abi'], - 'renounceOwnership', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'renounceOwnership' - } - : UseContractWriteConfig< - typeof systemDictatorGoerliABI, - 'renounceOwnership', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'renounceOwnership' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any ) { - return useContractWrite< - typeof systemDictatorGoerliABI, - 'renounceOwnership', - TMode - >({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'renounceOwnership', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'MINT_PERIOD', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"governanceToken"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliStep1< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress +export function useMintManagerGovernanceToken< + TFunctionName extends 'governanceToken', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'step1' - >['request']['abi'], - 'step1', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step1' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'step1' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step1', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'governanceToken', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mintPermittedAfter"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliStep2< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress +export function useMintManagerMintPermittedAfter< + TFunctionName extends 'mintPermittedAfter', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'step2' - >['request']['abi'], - 'step2', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step2' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'step2' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step2', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'mintPermittedAfter', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"owner"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliStep3< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress +export function useMintManagerOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'step3' - >['request']['abi'], - 'step3', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step3' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'step3' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step3', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'owner', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliStep4< +export function useMintManagerWrite< + TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress + TChainId extends number = keyof typeof mintManagerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'step4' + typeof mintManagerABI, + string >['request']['abi'], - 'step4', + TFunctionName, TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step4' } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'step4' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step4', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mint"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliStep5< +export function useMintManagerMint< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress + TChainId extends number = keyof typeof mintManagerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'step5' + typeof mintManagerABI, + 'mint' >['request']['abi'], - 'step5', + 'mint', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step5' } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'mint' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'step5' + functionName?: 'mint' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step5', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'mint', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"renounceOwnership"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliStep6< +export function useMintManagerRenounceOwnership< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress + TChainId extends number = keyof typeof mintManagerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'step6' + typeof mintManagerABI, + 'renounceOwnership' >['request']['abi'], - 'step6', + 'renounceOwnership', TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'step6' } - : UseContractWriteConfig & { + > & { + address?: Address + chainId?: TChainId + functionName?: 'renounceOwnership' + } + : UseContractWriteConfig< + typeof mintManagerABI, + 'renounceOwnership', + TMode + > & { abi?: never address?: never chainId?: TChainId - functionName?: 'step6' + functionName?: 'renounceOwnership' } = {} as any ) { - return useContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step6', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'renounceOwnership', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"transferOwnership"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliTransferOwnership< +export function useMintManagerTransferOwnership< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress + TChainId extends number = keyof typeof mintManagerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorGoerliABI, + typeof mintManagerABI, 'transferOwnership' >['request']['abi'], 'transferOwnership', @@ -14340,7 +22868,7 @@ export function useSystemDictatorGoerliTransferOwnership< functionName?: 'transferOwnership' } : UseContractWriteConfig< - typeof systemDictatorGoerliABI, + typeof mintManagerABI, 'transferOwnership', TMode > & { @@ -14350,3882 +22878,4787 @@ export function useSystemDictatorGoerliTransferOwnership< functionName?: 'transferOwnership' } = {} as any ) { - return useContractWrite< - typeof systemDictatorGoerliABI, - 'transferOwnership', - TMode - >({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], functionName: 'transferOwnership', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"upgrade"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) */ -export function useSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig< +export function useMintManagerUpgrade< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof systemDictatorGoerliAddress + TChainId extends number = keyof typeof mintManagerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof systemDictatorGoerliABI, - 'updateL2OutputOracleDynamicConfig' + typeof mintManagerABI, + 'upgrade' >['request']['abi'], - 'updateL2OutputOracleDynamicConfig', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'updateL2OutputOracleDynamicConfig' - } - : UseContractWriteConfig< - typeof systemDictatorGoerliABI, - 'updateL2OutputOracleDynamicConfig', + 'upgrade', TMode - > & { + > & { address?: Address; chainId?: TChainId; functionName?: 'upgrade' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'updateL2OutputOracleDynamicConfig' + functionName?: 'upgrade' } = {} as any ) { - return useContractWrite< - typeof systemDictatorGoerliABI, - 'updateL2OutputOracleDynamicConfig', - TMode - >({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'updateL2OutputOracleDynamicConfig', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'upgrade', ...config, } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mint"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerMint( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'mint', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"transferOwnership"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"upgrade"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function usePrepareMintManagerUpgrade( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + functionName: 'upgrade', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link mintManagerABI}__. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link mintManagerABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export function useMintManagerOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof mintManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: mintManagerABI, + address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliWrite< - TFunctionName extends string +export function useOptimismMintableErc721FactoryRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > >( config: Omit< - UsePrepareContractWriteConfig< - typeof systemDictatorGoerliABI, - TFunctionName + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData >, 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"bridge"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliExit1( +export function useOptimismMintableErc721FactoryBridge< + TFunctionName extends 'bridge', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'exit1', + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'bridge', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"isOptimismMintableERC721"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliFinalize( +export function useOptimismMintableErc721FactoryIsOptimismMintableErc721< + TFunctionName extends 'isOptimismMintableERC721', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'finalize', + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'isOptimismMintableERC721', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"remoteChainId"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliInitialize( +export function useOptimismMintableErc721FactoryRemoteChainId< + TFunctionName extends 'remoteChainId', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'initialize', + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'remoteChainId', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliRenounceOwnership( +export function useOptimismMintableErc721FactoryVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig< - typeof systemDictatorGoerliABI, - 'renounceOwnership' + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'renounceOwnership', + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'version', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliStep1( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +export function useOptimismMintableErc721FactoryWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step1', + return useContractWrite< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliStep2( - config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any +export function useOptimismMintableErc721FactoryCreateOptimismMintableErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721' + >['request']['abi'], + 'createOptimismMintableERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step2', + return useContractWrite< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721', + TMode + >({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'createOptimismMintableERC721', ...config, - } as UsePrepareContractWriteConfig) + } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliStep3( +export function usePrepareOptimismMintableErc721FactoryWrite< + TFunctionName extends string +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step3', + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliStep4( +export function usePrepareOptimismMintableErc721FactoryCreateOptimismMintableErc721( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step4', + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + functionName: 'createOptimismMintableERC721', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliStep5( +export function useOptimismMintableErc721FactoryEvent< + TEventName extends string +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step5', + return useContractEvent({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliStep6( +export function useOptimismMintableErc721FactoryOptimismMintableErc721CreatedEvent( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UseContractEventConfig< + typeof optimismMintableErc721FactoryABI, + 'OptimismMintableERC721Created' + >, + 'abi' | 'address' | 'eventName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'step6', + return useContractEvent({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress[10], + eventName: 'OptimismMintableERC721Created', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliTransferOwnership( +export function useOptimismMintableErc721FactoryOptimismGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig< - typeof systemDictatorGoerliABI, - 'transferOwnership' + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'transferOwnership', + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"BRIDGE"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function usePrepareSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig( +export function useOptimismMintableErc721FactoryOptimismGoerliBridge< + TFunctionName extends 'BRIDGE', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig< - typeof systemDictatorGoerliABI, - 'updateL2OutputOracleDynamicConfig' + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - return usePrepareContractWrite({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - functionName: 'updateL2OutputOracleDynamicConfig', + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'BRIDGE', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"REMOTE_CHAIN_ID"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useSystemDictatorGoerliEvent( +export function useOptimismMintableErc721FactoryOptimismGoerliRemoteChainId< + TFunctionName extends 'REMOTE_CHAIN_ID', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - return useContractEvent({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'REMOTE_CHAIN_ID', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"Initialized"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"isOptimismMintableERC721"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useSystemDictatorGoerliInitializedEvent( +export function useOptimismMintableErc721FactoryOptimismGoerliIsOptimismMintableErc721< + TFunctionName extends 'isOptimismMintableERC721', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - return useContractEvent({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - eventName: 'Initialized', + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'isOptimismMintableERC721', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"OwnershipTransferred"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useSystemDictatorGoerliOwnershipTransferredEvent( +export function useOptimismMintableErc721FactoryOptimismGoerliVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig< - typeof systemDictatorGoerliABI, - 'OwnershipTransferred' + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData >, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof systemDictatorGoerliAddress } = {} as any + 'abi' | 'address' | 'functionName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - return useContractEvent({ - abi: systemDictatorGoerliABI, - address: systemDictatorGoerliAddress[5], - eventName: 'OwnershipTransferred', + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'version', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useMintManagerRead< +export function useOptimismMintableErc721FactoryOptimismGoerliWrite< TFunctionName extends string, - TSelectData = ReadContractResult + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + return useContractWrite< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"DENOMINATOR"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useMintManagerDenominator< - TFunctionName extends 'DENOMINATOR', - TSelectData = ReadContractResult +export function useOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721' + >['request']['abi'], + 'createOptimismMintableERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'createOptimismMintableERC721' + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'DENOMINATOR', + return useContractWrite< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721', + TMode + >({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'createOptimismMintableERC721', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"MINT_CAP"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useMintManagerMintCap< - TFunctionName extends 'MINT_CAP', - TSelectData = ReadContractResult +export function usePrepareOptimismMintableErc721FactoryOptimismGoerliWrite< + TFunctionName extends string >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'MINT_CAP', + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"MINT_PERIOD"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useMintManagerMintPeriod< - TFunctionName extends 'MINT_PERIOD', - TSelectData = ReadContractResult ->( +export function usePrepareOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'MINT_PERIOD', + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + functionName: 'createOptimismMintableERC721', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"governanceToken"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useMintManagerGovernanceToken< - TFunctionName extends 'governanceToken', - TSelectData = ReadContractResult +export function useOptimismMintableErc721FactoryOptimismGoerliEvent< + TEventName extends string >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TEventName + >, + 'abi' | 'address' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'governanceToken', + return useContractEvent({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mintPermittedAfter"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) */ -export function useMintManagerMintPermittedAfter< - TFunctionName extends 'mintPermittedAfter', - TSelectData = ReadContractResult ->( +export function useOptimismMintableErc721FactoryOptimismGoerliOptimismMintableErc721CreatedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'OptimismMintableERC721Created' + >, + 'abi' | 'address' | 'eventName' + > & { + chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + } = {} as any ) { - const { chain } = useNetwork() - const chainId = config.chainId ?? chain?.id - return useContractRead({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'mintPermittedAfter', + return useContractEvent({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + eventName: 'OptimismMintableERC721Created', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"owner"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerOwner< - TFunctionName extends 'owner', - TSelectData = ReadContractResult +export function useOptimistRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'owner', + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"ATTESTATION_STATION"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof mintManagerAddress +export function useOptimistAttestationStation< + TFunctionName extends 'ATTESTATION_STATION', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof mintManagerABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'ATTESTATION_STATION', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mint"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"BASE_URI_ATTESTATION_KEY"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerMint< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof mintManagerAddress +export function useOptimistBaseUriAttestationKey< + TFunctionName extends 'BASE_URI_ATTESTATION_KEY', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof mintManagerABI, - 'mint' - >['request']['abi'], - 'mint', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'mint' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'mint' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'mint', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'BASE_URI_ATTESTATION_KEY', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"BASE_URI_ATTESTOR"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerRenounceOwnership< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof mintManagerAddress +export function useOptimistBaseUriAttestor< + TFunctionName extends 'BASE_URI_ATTESTOR', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof mintManagerABI, - 'renounceOwnership' - >['request']['abi'], - 'renounceOwnership', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'renounceOwnership' - } - : UseContractWriteConfig< - typeof mintManagerABI, - 'renounceOwnership', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'renounceOwnership' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'renounceOwnership', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'BASE_URI_ATTESTOR', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"OPTIMIST_ALLOWLIST"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerTransferOwnership< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof mintManagerAddress +export function useOptimistOptimistAllowlist< + TFunctionName extends 'OPTIMIST_ALLOWLIST', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof mintManagerABI, - 'transferOwnership' - >['request']['abi'], - 'transferOwnership', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'transferOwnership' - } - : UseContractWriteConfig< - typeof mintManagerABI, - 'transferOwnership', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'transferOwnership' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'transferOwnership', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'OPTIMIST_ALLOWLIST', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"upgrade"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"approve"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerUpgrade< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof mintManagerAddress +export function useOptimistApprove< + TFunctionName extends 'approve', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof mintManagerABI, - 'upgrade' - >['request']['abi'], - 'upgrade', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'upgrade' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'upgrade' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'upgrade', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'approve', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"balanceOf"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function usePrepareMintManagerWrite( +export function useOptimistBalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'balanceOf', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"mint"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"baseURI"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function usePrepareMintManagerMint( +export function useOptimistBaseUri< + TFunctionName extends 'baseURI', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'mint', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'baseURI', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"renounceOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"getApproved"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function usePrepareMintManagerRenounceOwnership( +export function useOptimistGetApproved< + TFunctionName extends 'getApproved', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'renounceOwnership', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'getApproved', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"transferOwnership"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"isApprovedForAll"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function usePrepareMintManagerTransferOwnership( +export function useOptimistIsApprovedForAll< + TFunctionName extends 'isApprovedForAll', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'transferOwnership', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'isApprovedForAll', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link mintManagerABI}__ and `functionName` set to `"upgrade"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"isOnAllowList"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function usePrepareMintManagerUpgrade( +export function useOptimistIsOnAllowList< + TFunctionName extends 'isOnAllowList', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return usePrepareContractWrite({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - functionName: 'upgrade', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'isOnAllowList', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link mintManagerABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"name"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerEvent( +export function useOptimistName< + TFunctionName extends 'name', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'name', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link mintManagerABI}__ and `eventName` set to `"OwnershipTransferred"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"ownerOf"`. * - * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) - * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useMintManagerOwnershipTransferredEvent( +export function useOptimistOwnerOf< + TFunctionName extends 'ownerOf', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof mintManagerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { const { chain } = useNetwork() const chainId = config.chainId ?? chain?.id - return useContractEvent({ - abi: mintManagerABI, - address: mintManagerAddress[chainId as keyof typeof mintManagerAddress], - eventName: 'OwnershipTransferred', + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'ownerOf', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"supportsInterface"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryRead< - TFunctionName extends string, - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryABI, - TFunctionName - > +export function useOptimistSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'supportsInterface', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"bridge"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"symbol"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryBridge< - TFunctionName extends 'bridge', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryABI, - TFunctionName - > +export function useOptimistSymbol< + TFunctionName extends 'symbol', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], - functionName: 'bridge', + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'symbol', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"isOptimismMintableERC721"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"tokenIdOfAddress"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryIsOptimismMintableErc721< - TFunctionName extends 'isOptimismMintableERC721', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryABI, - TFunctionName - > +export function useOptimistTokenIdOfAddress< + TFunctionName extends 'tokenIdOfAddress', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], - functionName: 'isOptimismMintableERC721', + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'tokenIdOfAddress', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"remoteChainId"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"tokenURI"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryRemoteChainId< - TFunctionName extends 'remoteChainId', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryABI, - TFunctionName - > +export function useOptimistTokenUri< + TFunctionName extends 'tokenURI', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], - functionName: 'remoteChainId', + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'tokenURI', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryVersion< +export function useOptimistVersion< TFunctionName extends 'version', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryABI, - TFunctionName - > + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryWrite< +export function useOptimistWrite< TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress + TChainId extends number = keyof typeof optimistAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismMintableErc721FactoryABI, + typeof optimistABI, string >['request']['abi'], TFunctionName, TMode > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig< - typeof optimismMintableErc721FactoryABI, - TFunctionName, + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"burn"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistBurn< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistABI, + 'burn' + >['request']['abi'], + 'burn', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'burn' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'burn' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'burn', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"initialize"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"mint"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistMint< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistABI, + 'mint' + >['request']['abi'], + 'mint', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'mint' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'mint' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'mint', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"safeTransferFrom"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistSafeTransferFrom< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistABI, + 'safeTransferFrom' + >['request']['abi'], + 'safeTransferFrom', TMode > & { + address?: Address + chainId?: TChainId + functionName?: 'safeTransferFrom' + } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId + functionName?: 'safeTransferFrom' } = {} as any ) { - return useContractWrite< - typeof optimismMintableErc721FactoryABI, - TFunctionName, - TMode - >({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'safeTransferFrom', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"setApprovalForAll"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryCreateOptimismMintableErc721< +export function useOptimistSetApprovalForAll< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismMintableErc721FactoryAddress + TChainId extends number = keyof typeof optimistAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof optimismMintableErc721FactoryABI, - 'createOptimismMintableERC721' + typeof optimistABI, + 'setApprovalForAll' + >['request']['abi'], + 'setApprovalForAll', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setApprovalForAll' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setApprovalForAll' + } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'setApprovalForAll', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"transferFrom"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistTransferFrom< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistABI, + 'transferFrom' >['request']['abi'], - 'createOptimismMintableERC721', + 'transferFrom', TMode > & { address?: Address chainId?: TChainId - functionName?: 'createOptimismMintableERC721' + functionName?: 'transferFrom' } - : UseContractWriteConfig< - typeof optimismMintableErc721FactoryABI, - 'createOptimismMintableERC721', - TMode - > & { + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'createOptimismMintableERC721' + functionName?: 'transferFrom' } = {} as any ) { - return useContractWrite< - typeof optimismMintableErc721FactoryABI, - 'createOptimismMintableERC721', - TMode - >({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], - functionName: 'createOptimismMintableERC721', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'transferFrom', ...config, } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function usePrepareOptimismMintableErc721FactoryWrite< - TFunctionName extends string ->( +export function usePrepareOptimistWrite( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismMintableErc721FactoryABI, - TFunctionName - >, + UsePrepareContractWriteConfig, 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"burn"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function usePrepareOptimismMintableErc721FactoryCreateOptimismMintableErc721( +export function usePrepareOptimistBurn( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismMintableErc721FactoryABI, - 'createOptimismMintableERC721' - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return usePrepareContractWrite({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], - functionName: 'createOptimismMintableERC721', + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'burn', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"initialize"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryEvent< - TEventName extends string ->( +export function usePrepareOptimistInitialize( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { - return useContractEvent({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'initialize', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"mint"`. * - * [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryOptimismMintableErc721CreatedEvent( +export function usePrepareOptimistMint( config: Omit< - UseContractEventConfig< - typeof optimismMintableErc721FactoryABI, - 'OptimismMintableERC721Created' - >, - 'abi' | 'address' | 'eventName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryAddress - } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { - return useContractEvent({ - abi: optimismMintableErc721FactoryABI, - address: optimismMintableErc721FactoryAddress[10], - eventName: 'OptimismMintableERC721Created', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'mint', ...config, - } as UseContractEventConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"safeTransferFrom"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryOptimismGoerliRead< - TFunctionName extends string, - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName - > ->( +export function usePrepareOptimistSafeTransferFrom( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { - return useContractRead({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'safeTransferFrom', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"BRIDGE"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"setApprovalForAll"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryOptimismGoerliBridge< - TFunctionName extends 'BRIDGE', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName - > ->( +export function usePrepareOptimistSetApprovalForAll( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { - return useContractRead({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], - functionName: 'BRIDGE', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'setApprovalForAll', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"REMOTE_CHAIN_ID"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"transferFrom"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryOptimismGoerliRemoteChainId< - TFunctionName extends 'REMOTE_CHAIN_ID', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName - > ->( +export function usePrepareOptimistTransferFrom( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { - return useContractRead({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], - functionName: 'REMOTE_CHAIN_ID', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'transferFrom', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"isOptimismMintableERC721"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryOptimismGoerliIsOptimismMintableErc721< - TFunctionName extends 'isOptimismMintableERC721', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName - > ->( +export function useOptimistEvent( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { - return useContractRead({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], - functionName: 'isOptimismMintableERC721', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__ and `eventName` set to `"Approval"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) */ -export function useOptimismMintableErc721FactoryOptimismGoerliVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName - > ->( +export function useOptimistApprovalEvent( config: Omit< - UseContractReadConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistAddress } = {} as any ) { - return useContractRead({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], - functionName: 'version', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + eventName: 'Approval', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__ and `eventName` set to `"ApprovalForAll"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistApprovalForAllEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + eventName: 'ApprovalForAll', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__ and `eventName` set to `"Initialized"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__ and `eventName` set to `"Transfer"`. + * + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistTransferEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + eventName: 'Transfer', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function useOptimismMintableErc721FactoryOptimismGoerliWrite< +export function useOptimistAllowlistRead< TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName, - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { - return useContractWrite< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName, - TMode - >({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"ALLOWLIST_ATTESTOR"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function useOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress +export function useOptimistAllowlistAllowlistAttestor< + TFunctionName extends 'ALLOWLIST_ATTESTOR', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - 'createOptimismMintableERC721' - >['request']['abi'], - 'createOptimismMintableERC721', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'createOptimismMintableERC721' - } - : UseContractWriteConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - 'createOptimismMintableERC721', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'createOptimismMintableERC721' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { - return useContractWrite< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - 'createOptimismMintableERC721', - TMode - >({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], - functionName: 'createOptimismMintableERC721', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'ALLOWLIST_ATTESTOR', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"ATTESTATION_STATION"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function usePrepareOptimismMintableErc721FactoryOptimismGoerliWrite< - TFunctionName extends string +export function useOptimistAllowlistAttestationStation< + TFunctionName extends 'ATTESTATION_STATION', + TSelectData = ReadContractResult >( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TFunctionName + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData >, - 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'ATTESTATION_STATION', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"COINBASE_QUEST_ATTESTOR"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function usePrepareOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721( +export function useOptimistAllowlistCoinbaseQuestAttestor< + TFunctionName extends 'COINBASE_QUEST_ATTESTOR', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - 'createOptimismMintableERC721' + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData >, 'abi' | 'address' | 'functionName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], - functionName: 'createOptimismMintableERC721', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'COINBASE_QUEST_ATTESTOR', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function useOptimismMintableErc721FactoryOptimismGoerliEvent< - TEventName extends string +export function useOptimistAllowlistCoinbaseQuestEligibleAttestationKey< + TFunctionName extends 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', + TSelectData = ReadContractResult >( config: Omit< - UseContractEventConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - TEventName + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData >, - 'abi' | 'address' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { - return useContractEvent({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"OPTIMIST_CAN_MINT_ATTESTATION_KEY"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000017) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function useOptimismMintableErc721FactoryOptimismGoerliOptimismMintableErc721CreatedEvent( +export function useOptimistAllowlistOptimistCanMintAttestationKey< + TFunctionName extends 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig< - typeof optimismMintableErc721FactoryOptimismGoerliABI, - 'OptimismMintableERC721Created' + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData >, - 'abi' | 'address' | 'eventName' - > & { - chainId?: keyof typeof optimismMintableErc721FactoryOptimismGoerliAddress - } = {} as any + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { - return useContractEvent({ - abi: optimismMintableErc721FactoryOptimismGoerliABI, - address: optimismMintableErc721FactoryOptimismGoerliAddress[420], - eventName: 'OptimismMintableERC721Created', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"OPTIMIST_INVITER"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function useBaseFeeVaultRead< - TFunctionName extends string, - TSelectData = ReadContractResult +export function useOptimistAllowlistOptimistInviter< + TFunctionName extends 'OPTIMIST_INVITER', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'OPTIMIST_INVITER', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"MIN_WITHDRAWAL_AMOUNT"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"isAllowedToMint"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function useBaseFeeVaultMinWithdrawalAmount< - TFunctionName extends 'MIN_WITHDRAWAL_AMOUNT', - TSelectData = ReadContractResult +export function useOptimistAllowlistIsAllowedToMint< + TFunctionName extends 'isAllowedToMint', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], - functionName: 'MIN_WITHDRAWAL_AMOUNT', + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'isAllowedToMint', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"RECIPIENT"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x482b1945D58f2E9Db0CEbe13c7fcFc6876b41180) */ -export function useBaseFeeVaultRecipient< - TFunctionName extends 'RECIPIENT', - TSelectData = ReadContractResult +export function useOptimistAllowlistVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], - functionName: 'RECIPIENT', + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"totalProcessed"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useBaseFeeVaultTotalProcessed< - TFunctionName extends 'totalProcessed', - TSelectData = ReadContractResult +export function useOptimistInviterRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], - functionName: 'totalProcessed', + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"ATTESTATION_STATION"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useBaseFeeVaultVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult +export function useOptimistInviterAttestationStation< + TFunctionName extends 'ATTESTATION_STATION', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], - functionName: 'version', + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'ATTESTATION_STATION', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"CAN_INVITE_ATTESTATION_KEY"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useBaseFeeVaultWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof baseFeeVaultAddress +export function useOptimistInviterCanInviteAttestationKey< + TFunctionName extends 'CAN_INVITE_ATTESTATION_KEY', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof baseFeeVaultABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractWrite({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'CAN_INVITE_ATTESTATION_KEY', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"withdraw"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"CLAIMABLE_INVITE_TYPEHASH"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useBaseFeeVaultWithdraw< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof baseFeeVaultAddress +export function useOptimistInviterClaimableInviteTypehash< + TFunctionName extends 'CLAIMABLE_INVITE_TYPEHASH', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof baseFeeVaultABI, - 'withdraw' - >['request']['abi'], - 'withdraw', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'withdraw' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractWrite({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], - functionName: 'withdraw', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'CLAIMABLE_INVITE_TYPEHASH', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"EIP712_VERSION"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function usePrepareBaseFeeVaultWrite( +export function useOptimistInviterEip712Version< + TFunctionName extends 'EIP712_VERSION', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'EIP712_VERSION', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"withdraw"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"INVITE_GRANTER"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function usePrepareBaseFeeVaultWithdraw( +export function useOptimistInviterInviteGranter< + TFunctionName extends 'INVITE_GRANTER', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], - functionName: 'withdraw', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'INVITE_GRANTER', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"MIN_COMMITMENT_PERIOD"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useBaseFeeVaultEvent( +export function useOptimistInviterMinCommitmentPeriod< + TFunctionName extends 'MIN_COMMITMENT_PERIOD', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractEvent({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'MIN_COMMITMENT_PERIOD', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__ and `eventName` set to `"Withdrawal"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"commitmentTimestamps"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useBaseFeeVaultWithdrawalEvent( +export function useOptimistInviterCommitmentTimestamps< + TFunctionName extends 'commitmentTimestamps', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractEvent({ - abi: baseFeeVaultABI, - address: baseFeeVaultAddress[420], - eventName: 'Withdrawal', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'commitmentTimestamps', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"inviteCounts"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleRead< - TFunctionName extends string, - TSelectData = ReadContractResult +export function useOptimistInviterInviteCounts< + TFunctionName extends 'inviteCounts', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'inviteCounts', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"baseFee"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"usedNonces"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleBaseFee< - TFunctionName extends 'baseFee', - TSelectData = ReadContractResult +export function useOptimistInviterUsedNonces< + TFunctionName extends 'usedNonces', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'baseFee', + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'usedNonces', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"decimals"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleDecimals< - TFunctionName extends 'decimals', - TSelectData = ReadContractResult +export function useOptimistInviterVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof optimistInviterABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'decimals', + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"gasPrice"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleGasPrice< - TFunctionName extends 'gasPrice', - TSelectData = ReadContractResult +export function useOptimistInviterWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistInviterABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof optimistInviterABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { - return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'gasPrice', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"getL1Fee"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"claimInvite"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleGetL1Fee< - TFunctionName extends 'getL1Fee', - TSelectData = ReadContractResult +export function useOptimistInviterClaimInvite< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistInviterABI, + 'claimInvite' + >['request']['abi'], + 'claimInvite', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'claimInvite' + } + : UseContractWriteConfig< + typeof optimistInviterABI, + 'claimInvite', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'claimInvite' + } = {} as any ) { - return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'getL1Fee', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'claimInvite', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"getL1GasUsed"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"commitInvite"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleGetL1GasUsed< - TFunctionName extends 'getL1GasUsed', - TSelectData = ReadContractResult +export function useOptimistInviterCommitInvite< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistInviterABI, + 'commitInvite' + >['request']['abi'], + 'commitInvite', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'commitInvite' + } + : UseContractWriteConfig< + typeof optimistInviterABI, + 'commitInvite', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'commitInvite' + } = {} as any ) { - return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'getL1GasUsed', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'commitInvite', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"l1BaseFee"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"initialize"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleL1BaseFee< - TFunctionName extends 'l1BaseFee', - TSelectData = ReadContractResult +export function useOptimistInviterInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistInviterABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'initialize' + } = {} as any ) { - return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'l1BaseFee', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'initialize', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"overhead"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"setInviteCounts"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleOverhead< - TFunctionName extends 'overhead', - TSelectData = ReadContractResult +export function useOptimistInviterSetInviteCounts< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress >( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistInviterABI, + 'setInviteCounts' + >['request']['abi'], + 'setInviteCounts', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setInviteCounts' + } + : UseContractWriteConfig< + typeof optimistInviterABI, + 'setInviteCounts', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setInviteCounts' + } = {} as any ) { - return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'overhead', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'setInviteCounts', ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"scalar"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleScalar< - TFunctionName extends 'scalar', - TSelectData = ReadContractResult ->( +export function usePrepareOptimistInviterWrite( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'scalar', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"version"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"claimInvite"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useGasPriceOracleVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult ->( +export function usePrepareOptimistInviterClaimInvite( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: gasPriceOracleABI, - address: gasPriceOracleAddress[420], - functionName: 'version', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'claimInvite', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"commitInvite"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useL1BlockRead< - TFunctionName extends string, - TSelectData = ReadContractResult ->( +export function usePrepareOptimistInviterCommitInvite( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'commitInvite', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"DEPOSITOR_ACCOUNT"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"initialize"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useL1BlockDepositorAccount< - TFunctionName extends 'DEPOSITOR_ACCOUNT', - TSelectData = ReadContractResult ->( +export function usePrepareOptimistInviterInitialize( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'DEPOSITOR_ACCOUNT', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'initialize', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"basefee"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"setInviteCounts"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useL1BlockBasefee< - TFunctionName extends 'basefee', - TSelectData = ReadContractResult ->( +export function usePrepareOptimistInviterSetInviteCounts( config: Omit< - UseContractReadConfig, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'basefee', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'setInviteCounts', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"batcherHash"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistInviterABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useL1BlockBatcherHash< - TFunctionName extends 'batcherHash', - TSelectData = ReadContractResult ->( - config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any +export function useOptimistInviterEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'batcherHash', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"hash"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistInviterABI}__ and `eventName` set to `"Initialized"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useL1BlockHash< - TFunctionName extends 'hash', - TSelectData = ReadContractResult ->( +export function useOptimistInviterInitializedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'hash', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + eventName: 'Initialized', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"l1FeeOverhead"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistInviterABI}__ and `eventName` set to `"InviteClaimed"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x073031A1E1b8F5458Ed41Ce56331F5fd7e1de929) */ -export function useL1BlockL1FeeOverhead< - TFunctionName extends 'l1FeeOverhead', - TSelectData = ReadContractResult ->( +export function useOptimistInviterInviteClaimedEvent( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any ) { - return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'l1FeeOverhead', + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + eventName: 'InviteClaimed', ...config, - } as UseContractReadConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"l1FeeScalar"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function useL1BlockL1FeeScalar< - TFunctionName extends 'l1FeeScalar', - TSelectData = ReadContractResult +export function useBaseFeeVaultRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'l1FeeScalar', + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"number"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"MIN_WITHDRAWAL_AMOUNT"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function useL1BlockNumber< - TFunctionName extends 'number', - TSelectData = ReadContractResult +export function useBaseFeeVaultMinWithdrawalAmount< + TFunctionName extends 'MIN_WITHDRAWAL_AMOUNT', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'number', + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'MIN_WITHDRAWAL_AMOUNT', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"sequenceNumber"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"RECIPIENT"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function useL1BlockSequenceNumber< - TFunctionName extends 'sequenceNumber', - TSelectData = ReadContractResult +export function useBaseFeeVaultRecipient< + TFunctionName extends 'RECIPIENT', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'sequenceNumber', + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'RECIPIENT', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"timestamp"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"totalProcessed"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function useL1BlockTimestamp< - TFunctionName extends 'timestamp', - TSelectData = ReadContractResult +export function useBaseFeeVaultTotalProcessed< + TFunctionName extends 'totalProcessed', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'timestamp', + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'totalProcessed', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function useL1BlockVersion< +export function useBaseFeeVaultVersion< TFunctionName extends 'version', - TSelectData = ReadContractResult + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l1BlockABI, - address: l1BlockAddress[420], + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1BlockABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function useL1BlockWrite< +export function useBaseFeeVaultWrite< TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1BlockAddress + TChainId extends number = keyof typeof baseFeeVaultAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< - PrepareWriteContractResult['request']['abi'], + PrepareWriteContractResult< + typeof baseFeeVaultABI, + string + >['request']['abi'], TFunctionName, TMode > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId } = {} as any ) { - return useContractWrite({ - abi: l1BlockABI, - address: l1BlockAddress[420], + return useContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"setL1BlockValues"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"withdraw"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function useL1BlockSetL1BlockValues< +export function useBaseFeeVaultWithdraw< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1BlockAddress + TChainId extends number = keyof typeof baseFeeVaultAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l1BlockABI, - 'setL1BlockValues' + typeof baseFeeVaultABI, + 'withdraw' >['request']['abi'], - 'setL1BlockValues', + 'withdraw', TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'setL1BlockValues' - } - : UseContractWriteConfig & { + > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'setL1BlockValues' + functionName?: 'withdraw' } = {} as any ) { - return useContractWrite({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'setL1BlockValues', + return useContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function usePrepareBaseFeeVaultWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link baseFeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function usePrepareBaseFeeVaultWithdraw( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export function useBaseFeeVaultEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], ...config, - } as any) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1BlockABI}__. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link baseFeeVaultABI}__ and `eventName` set to `"Withdrawal"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) */ -export function usePrepareL1BlockWrite( +export function useBaseFeeVaultWithdrawalEvent( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof baseFeeVaultAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: l1BlockABI, - address: l1BlockAddress[420], + return useContractEvent({ + abi: baseFeeVaultABI, + address: baseFeeVaultAddress[420], + eventName: 'Withdrawal', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"setL1BlockValues"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function usePrepareL1BlockSetL1BlockValues( +export function useGasPriceOracleRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1BlockAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: l1BlockABI, - address: l1BlockAddress[420], - functionName: 'setL1BlockValues', + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"baseFee"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function useL1FeeVaultRead< - TFunctionName extends string, - TSelectData = ReadContractResult +export function useGasPriceOracleBaseFee< + TFunctionName extends 'baseFee', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { return useContractRead({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'baseFee', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"MIN_WITHDRAWAL_AMOUNT"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"decimals"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function useL1FeeVaultMinWithdrawalAmount< - TFunctionName extends 'MIN_WITHDRAWAL_AMOUNT', - TSelectData = ReadContractResult +export function useGasPriceOracleDecimals< + TFunctionName extends 'decimals', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { return useContractRead({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], - functionName: 'MIN_WITHDRAWAL_AMOUNT', + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'decimals', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"RECIPIENT"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"gasPrice"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function useL1FeeVaultRecipient< - TFunctionName extends 'RECIPIENT', - TSelectData = ReadContractResult +export function useGasPriceOracleGasPrice< + TFunctionName extends 'gasPrice', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { return useContractRead({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], - functionName: 'RECIPIENT', + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'gasPrice', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"totalProcessed"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"getL1Fee"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function useL1FeeVaultTotalProcessed< - TFunctionName extends 'totalProcessed', - TSelectData = ReadContractResult +export function useGasPriceOracleGetL1Fee< + TFunctionName extends 'getL1Fee', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { return useContractRead({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], - functionName: 'totalProcessed', + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'getL1Fee', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"getL1GasUsed"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function useL1FeeVaultVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult +export function useGasPriceOracleGetL1GasUsed< + TFunctionName extends 'getL1GasUsed', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { return useContractRead({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], - functionName: 'version', + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'getL1GasUsed', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"l1BaseFee"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function useL1FeeVaultWrite< - TFunctionName extends string, - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1FeeVaultAddress +export function useGasPriceOracleL1BaseFee< + TFunctionName extends 'l1BaseFee', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1FeeVaultABI, - string - >['request']['abi'], - TFunctionName, - TMode - > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { - return useContractWrite({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'l1BaseFee', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"withdraw"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"overhead"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function useL1FeeVaultWithdraw< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l1FeeVaultAddress +export function useGasPriceOracleOverhead< + TFunctionName extends 'overhead', + TSelectData = ReadContractResult >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l1FeeVaultABI, - 'withdraw' - >['request']['abi'], - 'withdraw', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } - : UseContractWriteConfig & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'withdraw' - } = {} as any + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { - return useContractWrite({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], - functionName: 'withdraw', + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'overhead', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"scalar"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function usePrepareL1FeeVaultWrite( +export function useGasPriceOracleScalar< + TFunctionName extends 'scalar', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'scalar', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"withdraw"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link gasPriceOracleABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) */ -export function usePrepareL1FeeVaultWithdraw( +export function useGasPriceOracleVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( config: Omit< - UsePrepareContractWriteConfig, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + > & { chainId?: keyof typeof gasPriceOracleAddress } = {} as any ) { - return usePrepareContractWrite({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], - functionName: 'withdraw', + return useContractRead({ + abi: gasPriceOracleABI, + address: gasPriceOracleAddress[420], + functionName: 'version', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL1FeeVaultEvent( +export function useL1BlockRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, + UseContractReadConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { - return useContractEvent({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__ and `eventName` set to `"Withdrawal"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"DEPOSITOR_ACCOUNT"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL1FeeVaultWithdrawalEvent( +export function useL1BlockDepositorAccount< + TFunctionName extends 'DEPOSITOR_ACCOUNT', + TSelectData = ReadContractResult +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { - return useContractEvent({ - abi: l1FeeVaultABI, - address: l1FeeVaultAddress[420], - eventName: 'Withdrawal', + return useContractRead({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'DEPOSITOR_ACCOUNT', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"basefee"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerRead< - TFunctionName extends string, - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockBasefee< + TFunctionName extends 'basefee', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'basefee', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MESSAGE_VERSION"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"batcherHash"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerMessageVersion< - TFunctionName extends 'MESSAGE_VERSION', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockBatcherHash< + TFunctionName extends 'batcherHash', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'MESSAGE_VERSION', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'batcherHash', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_CALLDATA_OVERHEAD"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"hash"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerMinGasCalldataOverhead< - TFunctionName extends 'MIN_GAS_CALLDATA_OVERHEAD', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockHash< + TFunctionName extends 'hash', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'MIN_GAS_CALLDATA_OVERHEAD', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'hash', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"l1FeeOverhead"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerMinGasDynamicOverheadDenominator< - TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockL1FeeOverhead< + TFunctionName extends 'l1FeeOverhead', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'l1FeeOverhead', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"l1FeeScalar"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerMinGasDynamicOverheadNumerator< - TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockL1FeeScalar< + TFunctionName extends 'l1FeeScalar', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'l1FeeScalar', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"OTHER_MESSENGER"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"number"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerOtherMessenger< - TFunctionName extends 'OTHER_MESSENGER', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockNumber< + TFunctionName extends 'number', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'OTHER_MESSENGER', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'number', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CALL_OVERHEAD"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"sequenceNumber"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerRelayCallOverhead< - TFunctionName extends 'RELAY_CALL_OVERHEAD', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockSequenceNumber< + TFunctionName extends 'sequenceNumber', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'RELAY_CALL_OVERHEAD', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'sequenceNumber', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CONSTANT_OVERHEAD"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"timestamp"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerRelayConstantOverhead< - TFunctionName extends 'RELAY_CONSTANT_OVERHEAD', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockTimestamp< + TFunctionName extends 'timestamp', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'RELAY_CONSTANT_OVERHEAD', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'timestamp', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_GAS_CHECK_BUFFER"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerRelayGasCheckBuffer< - TFunctionName extends 'RELAY_GAS_CHECK_BUFFER', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'RELAY_GAS_CHECK_BUFFER', + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_RESERVED_GAS"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1BlockABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerRelayReservedGas< - TFunctionName extends 'RELAY_RESERVED_GAS', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1BlockAddress >( - config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any ) { - return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'RELAY_RESERVED_GAS', + return useContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], ...config, - } as UseContractReadConfig) + } as any) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"baseGas"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"setL1BlockValues"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerBaseGas< - TFunctionName extends 'baseGas', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1BlockSetL1BlockValues< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l1BlockAddress >( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l1BlockABI, + 'setL1BlockValues' + >['request']['abi'], + 'setL1BlockValues', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setL1BlockValues' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setL1BlockValues' + } = {} as any +) { + return useContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'setL1BlockValues', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1BlockABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export function usePrepareL1BlockWrite( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { - return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'baseGas', + return usePrepareContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"failedMessages"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1BlockABI}__ and `functionName` set to `"setL1BlockValues"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) */ -export function useL2CrossDomainMessengerFailedMessages< - TFunctionName extends 'failedMessages', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > ->( +export function usePrepareL1BlockSetL1BlockValues( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UsePrepareContractWriteConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1BlockAddress } = {} as any ) { - return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'failedMessages', + return usePrepareContractWrite({ + abi: l1BlockABI, + address: l1BlockAddress[420], + functionName: 'setL1BlockValues', ...config, - } as UseContractReadConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"l1CrossDomainMessenger"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) */ -export function useL2CrossDomainMessengerL1CrossDomainMessenger< - TFunctionName extends 'l1CrossDomainMessenger', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1FeeVaultRead< + TFunctionName extends string, + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, - 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'l1CrossDomainMessenger', + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"messageNonce"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"MIN_WITHDRAWAL_AMOUNT"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) */ -export function useL2CrossDomainMessengerMessageNonce< - TFunctionName extends 'messageNonce', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1FeeVaultMinWithdrawalAmount< + TFunctionName extends 'MIN_WITHDRAWAL_AMOUNT', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'messageNonce', + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'MIN_WITHDRAWAL_AMOUNT', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"successfulMessages"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"RECIPIENT"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) */ -export function useL2CrossDomainMessengerSuccessfulMessages< - TFunctionName extends 'successfulMessages', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1FeeVaultRecipient< + TFunctionName extends 'RECIPIENT', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'successfulMessages', + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'RECIPIENT', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"totalProcessed"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) */ -export function useL2CrossDomainMessengerVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1FeeVaultTotalProcessed< + TFunctionName extends 'totalProcessed', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'version', + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'totalProcessed', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"xDomainMessageSender"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) */ -export function useL2CrossDomainMessengerXDomainMessageSender< - TFunctionName extends 'xDomainMessageSender', - TSelectData = ReadContractResult< - typeof l2CrossDomainMessengerABI, - TFunctionName - > +export function useL1FeeVaultVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult >( config: Omit< - UseContractReadConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TSelectData - >, + UseContractReadConfig, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any ) { return useContractRead({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], - functionName: 'xDomainMessageSender', + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) */ -export function useL2CrossDomainMessengerWrite< +export function useL1FeeVaultWrite< TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2CrossDomainMessengerAddress + TChainId extends number = keyof typeof l1FeeVaultAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l2CrossDomainMessengerABI, + typeof l1FeeVaultABI, string >['request']['abi'], TFunctionName, TMode > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TMode - > & { + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId } = {} as any ) { - return useContractWrite< - typeof l2CrossDomainMessengerABI, - TFunctionName, - TMode - >({ - abi: l2CrossDomainMessengerABI, - address: l2CrossDomainMessengerAddress[420], + return useContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"withdraw"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) */ -export function useL2CrossDomainMessengerInitialize< +export function useL1FeeVaultWithdraw< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2CrossDomainMessengerAddress + TChainId extends number = keyof typeof l1FeeVaultAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l2CrossDomainMessengerABI, - 'initialize' + typeof l1FeeVaultABI, + 'withdraw' >['request']['abi'], - 'initialize', - TMode - > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } - : UseContractWriteConfig< - typeof l2CrossDomainMessengerABI, - 'initialize', + 'withdraw', TMode - > & { + > & { address?: Address; chainId?: TChainId; functionName?: 'withdraw' } + : UseContractWriteConfig & { abi?: never address?: never chainId?: TChainId - functionName?: 'initialize' + functionName?: 'withdraw' } = {} as any ) { - return useContractWrite< + return useContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function usePrepareL1FeeVaultWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l1FeeVaultABI}__ and `functionName` set to `"withdraw"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function usePrepareL1FeeVaultWithdraw( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + functionName: 'withdraw', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l1FeeVaultABI}__ and `eventName` set to `"Withdrawal"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export function useL1FeeVaultWithdrawalEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l1FeeVaultAddress } = {} as any +) { + return useContractEvent({ + abi: l1FeeVaultABI, + address: l1FeeVaultAddress[420], + eventName: 'Withdrawal', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRead< + TFunctionName extends string, + TSelectData = ReadContractResult< typeof l2CrossDomainMessengerABI, - 'initialize', - TMode - >({ + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - functionName: 'initialize', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MESSAGE_VERSION"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerRelayMessage< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2CrossDomainMessengerAddress +export function useL2CrossDomainMessengerMessageVersion< + TFunctionName extends 'MESSAGE_VERSION', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l2CrossDomainMessengerABI, - 'relayMessage' - >['request']['abi'], - 'relayMessage', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'relayMessage' - } - : UseContractWriteConfig< - typeof l2CrossDomainMessengerABI, - 'relayMessage', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'relayMessage' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractWrite< - typeof l2CrossDomainMessengerABI, - 'relayMessage', - TMode - >({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - functionName: 'relayMessage', + functionName: 'MESSAGE_VERSION', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_CALLDATA_OVERHEAD"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerSendMessage< - TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2CrossDomainMessengerAddress +export function useL2CrossDomainMessengerMinGasCalldataOverhead< + TFunctionName extends 'MIN_GAS_CALLDATA_OVERHEAD', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > >( - config: TMode extends 'prepared' - ? UseContractWriteConfig< - PrepareWriteContractResult< - typeof l2CrossDomainMessengerABI, - 'sendMessage' - >['request']['abi'], - 'sendMessage', - TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'sendMessage' - } - : UseContractWriteConfig< - typeof l2CrossDomainMessengerABI, - 'sendMessage', - TMode - > & { - abi?: never - address?: never - chainId?: TChainId - functionName?: 'sendMessage' - } = {} as any + config: Omit< + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractWrite< - typeof l2CrossDomainMessengerABI, - 'sendMessage', - TMode - >({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - functionName: 'sendMessage', + functionName: 'MIN_GAS_CALLDATA_OVERHEAD', ...config, - } as any) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2CrossDomainMessengerWrite< - TFunctionName extends string +export function useL2CrossDomainMessengerMinGasDynamicOverheadDenominator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > >( config: Omit< - UsePrepareContractWriteConfig< + UseContractReadConfig< typeof l2CrossDomainMessengerABI, - TFunctionName + TFunctionName, + TSelectData >, - 'abi' | 'address' + 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return usePrepareContractWrite({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2CrossDomainMessengerInitialize( +export function useL2CrossDomainMessengerMinGasDynamicOverheadNumerator< + TFunctionName extends 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig< + UseContractReadConfig< typeof l2CrossDomainMessengerABI, - 'initialize' + TFunctionName, + TSelectData >, 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return usePrepareContractWrite({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - functionName: 'initialize', + functionName: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"OTHER_MESSENGER"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2CrossDomainMessengerRelayMessage( +export function useL2CrossDomainMessengerOtherMessenger< + TFunctionName extends 'OTHER_MESSENGER', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig< + UseContractReadConfig< typeof l2CrossDomainMessengerABI, - 'relayMessage' + TFunctionName, + TSelectData >, 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return usePrepareContractWrite({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - functionName: 'relayMessage', + functionName: 'OTHER_MESSENGER', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CALL_OVERHEAD"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2CrossDomainMessengerSendMessage( +export function useL2CrossDomainMessengerRelayCallOverhead< + TFunctionName extends 'RELAY_CALL_OVERHEAD', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UsePrepareContractWriteConfig< + UseContractReadConfig< typeof l2CrossDomainMessengerABI, - 'sendMessage' + TFunctionName, + TSelectData >, 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return usePrepareContractWrite({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - functionName: 'sendMessage', + functionName: 'RELAY_CALL_OVERHEAD', ...config, - } as UsePrepareContractWriteConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_CONSTANT_OVERHEAD"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerEvent( +export function useL2CrossDomainMessengerRelayConstantOverhead< + TFunctionName extends 'RELAY_CONSTANT_OVERHEAD', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractEvent({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], + functionName: 'RELAY_CONSTANT_OVERHEAD', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"FailedRelayedMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_GAS_CHECK_BUFFER"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerFailedRelayedMessageEvent( +export function useL2CrossDomainMessengerRelayGasCheckBuffer< + TFunctionName extends 'RELAY_GAS_CHECK_BUFFER', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig< + UseContractReadConfig< typeof l2CrossDomainMessengerABI, - 'FailedRelayedMessage' + TFunctionName, + TSelectData >, - 'abi' | 'address' | 'eventName' + 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractEvent({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - eventName: 'FailedRelayedMessage', + functionName: 'RELAY_GAS_CHECK_BUFFER', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"Initialized"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"RELAY_RESERVED_GAS"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerInitializedEvent( +export function useL2CrossDomainMessengerRelayReservedGas< + TFunctionName extends 'RELAY_RESERVED_GAS', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractEvent({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - eventName: 'Initialized', + functionName: 'RELAY_RESERVED_GAS', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"RelayedMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"baseGas"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerRelayedMessageEvent( +export function useL2CrossDomainMessengerBaseGas< + TFunctionName extends 'baseGas', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractEvent({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - eventName: 'RelayedMessage', + functionName: 'baseGas', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"SentMessage"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"failedMessages"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerSentMessageEvent( +export function useL2CrossDomainMessengerFailedMessages< + TFunctionName extends 'failedMessages', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig, - 'abi' | 'address' | 'eventName' + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractEvent({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - eventName: 'SentMessage', + functionName: 'failedMessages', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"SentMessageExtension1"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"l1CrossDomainMessenger"`. * * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2CrossDomainMessengerSentMessageExtension1Event( +export function useL2CrossDomainMessengerL1CrossDomainMessenger< + TFunctionName extends 'l1CrossDomainMessenger', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > +>( config: Omit< - UseContractEventConfig< + UseContractReadConfig< typeof l2CrossDomainMessengerABI, - 'SentMessageExtension1' + TFunctionName, + TSelectData >, - 'abi' | 'address' | 'eventName' + 'abi' | 'address' | 'functionName' > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { - return useContractEvent({ + return useContractRead({ abi: l2CrossDomainMessengerABI, address: l2CrossDomainMessengerAddress[420], - eventName: 'SentMessageExtension1', + functionName: 'l1CrossDomainMessenger', ...config, - } as UseContractEventConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"messageNonce"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeRead< - TFunctionName extends string, - TSelectData = ReadContractResult +export function useL2CrossDomainMessengerMessageNonce< + TFunctionName extends 'messageNonce', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, - 'abi' | 'address' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return useContractRead({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'messageNonce', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"messenger"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"successfulMessages"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeMessenger< - TFunctionName extends 'messenger', - TSelectData = ReadContractResult +export function useL2CrossDomainMessengerSuccessfulMessages< + TFunctionName extends 'successfulMessages', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return useContractRead({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'messenger', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'successfulMessages', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"version"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeOtherBridge< - TFunctionName extends 'otherBridge', - TSelectData = ReadContractResult +export function useL2CrossDomainMessengerVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return useContractRead({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'otherBridge', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'version', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"version"`. + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"xDomainMessageSender"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeVersion< - TFunctionName extends 'version', - TSelectData = ReadContractResult +export function useL2CrossDomainMessengerXDomainMessageSender< + TFunctionName extends 'xDomainMessageSender', + TSelectData = ReadContractResult< + typeof l2CrossDomainMessengerABI, + TFunctionName + > >( config: Omit< - UseContractReadConfig, + UseContractReadConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return useContractRead({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'version', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'xDomainMessageSender', ...config, - } as UseContractReadConfig) + } as UseContractReadConfig) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeWrite< +export function useL2CrossDomainMessengerWrite< TFunctionName extends string, TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2Erc721BridgeAddress + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l2Erc721BridgeABI, + typeof l2CrossDomainMessengerABI, string >['request']['abi'], TFunctionName, TMode > & { address?: Address; chainId?: TChainId } - : UseContractWriteConfig & { + : UseContractWriteConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TMode + > & { abi?: never address?: never chainId?: TChainId } = {} as any ) { - return useContractWrite({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], + return useContractWrite< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TMode + >({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeBridgeErc721< +export function useL2CrossDomainMessengerInitialize< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2Erc721BridgeAddress + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l2Erc721BridgeABI, - 'bridgeERC721' + typeof l2CrossDomainMessengerABI, + 'initialize' >['request']['abi'], - 'bridgeERC721', + 'initialize', TMode - > & { - address?: Address - chainId?: TChainId - functionName?: 'bridgeERC721' - } + > & { address?: Address; chainId?: TChainId; functionName?: 'initialize' } : UseContractWriteConfig< - typeof l2Erc721BridgeABI, - 'bridgeERC721', + typeof l2CrossDomainMessengerABI, + 'initialize', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'bridgeERC721' - } = {} as any -) { - return useContractWrite({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'bridgeERC721', + functionName?: 'initialize' + } = {} as any +) { + return useContractWrite< + typeof l2CrossDomainMessengerABI, + 'initialize', + TMode + >({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'initialize', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeBridgeErc721To< +export function useL2CrossDomainMessengerRelayMessage< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2Erc721BridgeAddress + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l2Erc721BridgeABI, - 'bridgeERC721To' + typeof l2CrossDomainMessengerABI, + 'relayMessage' >['request']['abi'], - 'bridgeERC721To', + 'relayMessage', TMode > & { address?: Address chainId?: TChainId - functionName?: 'bridgeERC721To' + functionName?: 'relayMessage' } : UseContractWriteConfig< - typeof l2Erc721BridgeABI, - 'bridgeERC721To', + typeof l2CrossDomainMessengerABI, + 'relayMessage', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'bridgeERC721To' + functionName?: 'relayMessage' } = {} as any ) { - return useContractWrite({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'bridgeERC721To', + return useContractWrite< + typeof l2CrossDomainMessengerABI, + 'relayMessage', + TMode + >({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'relayMessage', ...config, } as any) } /** - * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeFinalizeBridgeErc721< +export function useL2CrossDomainMessengerSendMessage< TMode extends WriteContractMode = undefined, - TChainId extends number = keyof typeof l2Erc721BridgeAddress + TChainId extends number = keyof typeof l2CrossDomainMessengerAddress >( config: TMode extends 'prepared' ? UseContractWriteConfig< PrepareWriteContractResult< - typeof l2Erc721BridgeABI, - 'finalizeBridgeERC721' + typeof l2CrossDomainMessengerABI, + 'sendMessage' >['request']['abi'], - 'finalizeBridgeERC721', + 'sendMessage', TMode > & { address?: Address chainId?: TChainId - functionName?: 'finalizeBridgeERC721' + functionName?: 'sendMessage' } : UseContractWriteConfig< - typeof l2Erc721BridgeABI, - 'finalizeBridgeERC721', + typeof l2CrossDomainMessengerABI, + 'sendMessage', TMode > & { abi?: never address?: never chainId?: TChainId - functionName?: 'finalizeBridgeERC721' + functionName?: 'sendMessage' } = {} as any ) { return useContractWrite< - typeof l2Erc721BridgeABI, - 'finalizeBridgeERC721', + typeof l2CrossDomainMessengerABI, + 'sendMessage', TMode >({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'finalizeBridgeERC721', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'sendMessage', ...config, } as any) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2Erc721BridgeWrite( +export function usePrepareL2CrossDomainMessengerWrite< + TFunctionName extends string +>( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof l2CrossDomainMessengerABI, + TFunctionName + >, 'abi' | 'address' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"initialize"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2Erc721BridgeBridgeErc721( +export function usePrepareL2CrossDomainMessengerInitialize( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'initialize' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'bridgeERC721', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'initialize', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"relayMessage"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2Erc721BridgeBridgeErc721To( +export function usePrepareL2CrossDomainMessengerRelayMessage( config: Omit< - UsePrepareContractWriteConfig, + UsePrepareContractWriteConfig< + typeof l2CrossDomainMessengerABI, + 'relayMessage' + >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'bridgeERC721To', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'relayMessage', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `functionName` set to `"sendMessage"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function usePrepareL2Erc721BridgeFinalizeBridgeErc721( +export function usePrepareL2CrossDomainMessengerSendMessage( config: Omit< UsePrepareContractWriteConfig< - typeof l2Erc721BridgeABI, - 'finalizeBridgeERC721' + typeof l2CrossDomainMessengerABI, + 'sendMessage' >, 'abi' | 'address' | 'functionName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return usePrepareContractWrite({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - functionName: 'finalizeBridgeERC721', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + functionName: 'sendMessage', ...config, - } as UsePrepareContractWriteConfig) + } as UsePrepareContractWriteConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeEvent( +export function useL2CrossDomainMessengerEvent( config: Omit< - UseContractEventConfig, + UseContractEventConfig, 'abi' | 'address' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return useContractEvent({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"FailedRelayedMessage"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeErc721BridgeFinalizedEvent( +export function useL2CrossDomainMessengerFailedRelayedMessageEvent( config: Omit< - UseContractEventConfig, + UseContractEventConfig< + typeof l2CrossDomainMessengerABI, + 'FailedRelayedMessage' + >, 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return useContractEvent({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - eventName: 'ERC721BridgeFinalized', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'FailedRelayedMessage', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) } /** - * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"Initialized"`. * - * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) */ -export function useL2Erc721BridgeErc721BridgeInitiatedEvent( +export function useL2CrossDomainMessengerInitializedEvent( config: Omit< - UseContractEventConfig, + UseContractEventConfig, 'abi' | 'address' | 'eventName' - > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any ) { return useContractEvent({ - abi: l2Erc721BridgeABI, - address: l2Erc721BridgeAddress[420], - eventName: 'ERC721BridgeInitiated', + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'Initialized', ...config, - } as UseContractEventConfig) + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"RelayedMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerRelayedMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'RelayedMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"SentMessage"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerSentMessageEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'SentMessage', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__ and `eventName` set to `"SentMessageExtension1"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function useL2CrossDomainMessengerSentMessageExtension1Event( + config: Omit< + UseContractEventConfig< + typeof l2CrossDomainMessengerABI, + 'SentMessageExtension1' + >, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } = {} as any +) { + return useContractEvent({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + eventName: 'SentMessageExtension1', + ...config, + } as UseContractEventConfig) } /** diff --git a/packages/contracts-ts/tsup.config.ts b/packages/contracts-ts/tsup.config.ts index e65e25b79694..fcb9f3fb5405 100644 --- a/packages/contracts-ts/tsup.config.ts +++ b/packages/contracts-ts/tsup.config.ts @@ -10,4 +10,3 @@ export default defineConfig({ sourcemap: true, clean: false, }) - From 79159d56d40ab7d0749cf7db54cb6041402ac7a3 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Fri, 14 Jul 2023 10:12:49 -0700 Subject: [PATCH 08/12] feat: Add contracts-periphery to contracts-ts --- packages/contracts-ts/package.json | 2 +- packages/contracts-ts/src/actions.ts | 2 +- packages/contracts-ts/src/constants.ts | 2 +- packages/contracts-ts/src/react.ts | 2 +- packages/contracts-ts/wagmi.config.ts | 3 +-- pnpm-lock.yaml | 5 ++++- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/contracts-ts/package.json b/packages/contracts-ts/package.json index 2bb1e31f5335..6f8d05244854 100644 --- a/packages/contracts-ts/package.json +++ b/packages/contracts-ts/package.json @@ -45,7 +45,7 @@ "typecheck": "tsc --noEmit" }, "devDependencies": { - "@eth-optimism/contracts-bedrock": "workspace:0.15.0", + "@eth-optimism/contracts-bedrock": "workspace:*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react-hooks": "^8.0.1", "@types/glob": "^8.1.0", diff --git a/packages/contracts-ts/src/actions.ts b/packages/contracts-ts/src/actions.ts index 4a1ffb5e9cb2..9333bf45c20d 100644 --- a/packages/contracts-ts/src/actions.ts +++ b/packages/contracts-ts/src/actions.ts @@ -1,4 +1,4 @@ -// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:40:03 PM +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:42:03 PM import { getContract, GetContractArgs, diff --git a/packages/contracts-ts/src/constants.ts b/packages/contracts-ts/src/constants.ts index e6bd443bfde1..6aaaee7a7c9b 100644 --- a/packages/contracts-ts/src/constants.ts +++ b/packages/contracts-ts/src/constants.ts @@ -1,4 +1,4 @@ -// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:40:02 PM +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:42:02 PM /* eslint-disable */ diff --git a/packages/contracts-ts/src/react.ts b/packages/contracts-ts/src/react.ts index 171b7c08d2ec..1314f38ff949 100644 --- a/packages/contracts-ts/src/react.ts +++ b/packages/contracts-ts/src/react.ts @@ -1,4 +1,4 @@ -// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:40:03 PM +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:42:04 PM import { useNetwork, useContractRead, diff --git a/packages/contracts-ts/wagmi.config.ts b/packages/contracts-ts/wagmi.config.ts index c7fe447d9139..d176cf5a6877 100644 --- a/packages/contracts-ts/wagmi.config.ts +++ b/packages/contracts-ts/wagmi.config.ts @@ -152,10 +152,9 @@ const deployments = { `node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[420]}/*.json` ), } - Object.entries(deployments).forEach(([chain, deploymentFiles]) => { if (deploymentFiles.length === 0) { - throw new Error(`No deployments found for ${chains[chain]}`) + throw new Error(`No bedrock deployments found for ${chains[chain]}`) } }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee66eb915fab..2e427bc51579 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -309,8 +309,11 @@ importers: version: 1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) devDependencies: '@eth-optimism/contracts-bedrock': - specifier: workspace:0.15.0 + specifier: workspace:* version: link:../contracts-bedrock + '@eth-optimism/contracts-periphery': + specifier: workspace:* + version: link:../contracts-periphery '@testing-library/jest-dom': specifier: ^5.16.5 version: 5.16.5 From 346d7885c59e53e61b4f8796c0de55711e384503 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Mon, 17 Jul 2023 19:50:15 -0700 Subject: [PATCH 09/12] chore: update lockfile after rebasing --- pnpm-lock.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e427bc51579..418a8f91477b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -311,9 +311,6 @@ importers: '@eth-optimism/contracts-bedrock': specifier: workspace:* version: link:../contracts-bedrock - '@eth-optimism/contracts-periphery': - specifier: workspace:* - version: link:../contracts-periphery '@testing-library/jest-dom': specifier: ^5.16.5 version: 5.16.5 From 4703674b477cc5dd3626c51ea0ad508111339352 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Mon, 17 Jul 2023 19:54:00 -0700 Subject: [PATCH 10/12] fix: Bad tsupconfig entrypoint --- packages/contracts-ts/src/actions.spec.ts | 31 ----------------------- packages/contracts-ts/tsup.config.ts | 2 +- 2 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 packages/contracts-ts/src/actions.spec.ts diff --git a/packages/contracts-ts/src/actions.spec.ts b/packages/contracts-ts/src/actions.spec.ts deleted file mode 100644 index e88e5364eb2c..000000000000 --- a/packages/contracts-ts/src/actions.spec.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { test, expect } from 'vitest' -import { getOptimismPortal } from './actions' -import { createConfig, configureChains } from 'wagmi' -import { jsonRpcProvider } from 'wagmi/providers/jsonRpc' -import { mainnet } from 'viem/chains' - -const { publicClient } = configureChains( - [mainnet], - [ - jsonRpcProvider({ - rpc: () => ({ - http: - import.meta.env.VITE_RPC_URL_L1_MAINNET ?? mainnet.rpcUrls.default[0], - }), - }), - ] -) - -createConfig({ - publicClient: ({ chainId }) => publicClient({ chainId }), -}) - -const blockNumber = BigInt(17681356) - -test('should be able to create a wagmi contract and use it', async () => { - const portal = getOptimismPortal({ chainId: 1 }) - expect(portal).toBeDefined() - expect(await portal.read.version({ blockNumber })).toMatchInlineSnapshot( - '"1.6.0"' - ) -}) diff --git a/packages/contracts-ts/tsup.config.ts b/packages/contracts-ts/tsup.config.ts index fcb9f3fb5405..08f18f247364 100644 --- a/packages/contracts-ts/tsup.config.ts +++ b/packages/contracts-ts/tsup.config.ts @@ -3,7 +3,7 @@ import packageJson from './package.json' export default defineConfig({ name: packageJson.name, - entry: ['src/index.ts', 'src/actions.ts', 'src/react.ts'], + entry: ['src/constants.ts', 'src/actions.ts', 'src/react.ts'], outDir: 'dist', format: ['esm', 'cjs'], splitting: false, From 8447f29195707c4ea83a82e54055b5954e0ab330 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Tue, 18 Jul 2023 11:07:10 -0700 Subject: [PATCH 11/12] fix: Add node_modules to restore cache --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 55d3eca1a13a..9ce4fd7c2c36 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -143,6 +143,7 @@ jobs: - "packages/fault-detector/node_modules" - "packages/replica-healthcheck/node_modules" - "packages/sdk/node_modules" + - "packages/contracts-ts/node_modules" - run: name: print forge version command: forge --version From f0be885ab271ae4ca8518df676d73ce3323d77e9 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Tue, 18 Jul 2023 11:08:40 -0700 Subject: [PATCH 12/12] pnpm up --latest just so we break the cache --- packages/contracts-ts/package.json | 14 +- pnpm-lock.yaml | 258 ++++++++++++++--------------- 2 files changed, 133 insertions(+), 139 deletions(-) diff --git a/packages/contracts-ts/package.json b/packages/contracts-ts/package.json index 6f8d05244854..1b553e4db1d7 100644 --- a/packages/contracts-ts/package.json +++ b/packages/contracts-ts/package.json @@ -46,20 +46,20 @@ }, "devDependencies": { "@eth-optimism/contracts-bedrock": "workspace:*", - "@testing-library/jest-dom": "^5.16.5", + "@testing-library/jest-dom": "^5.17.0", "@testing-library/react-hooks": "^8.0.1", "@types/glob": "^8.1.0", "@vitest/coverage-istanbul": "^0.33.0", "@wagmi/cli": "^1.3.0", - "@wagmi/core": "^1.3.7", - "abitype": "^0.9.0", - "glob": "^7.2.3", + "@wagmi/core": "^1.3.8", + "abitype": "^0.9.2", + "glob": "^10.3.3", "isomorphic-fetch": "^3.0.0", "jest-dom": "link:@types/@testing-library/jest-dom", "jsdom": "^22.1.0", "tsup": "^7.1.0", - "typescript": "^4.9.3", - "vite": "^4.4.3", + "typescript": "^5.1.6", + "vite": "^4.4.4", "vitest": "^0.33.0" }, "peerDependencies": { @@ -78,6 +78,6 @@ "@testing-library/react": "^14.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "viem": "^0.3.30" + "viem": "^1.3.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 418a8f91477b..adc7acdb1523 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,7 +172,7 @@ importers: version: 5.7.0 ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@12.20.55)(typescript@4.9.5) + version: 10.9.1(@types/node@12.20.55)(typescript@5.1.6) packages/common-ts: dependencies: @@ -302,18 +302,18 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) viem: - specifier: ^0.3.30 - version: 0.3.30(typescript@4.9.3)(zod@3.20.2) + specifier: ^1.3.0 + version: 1.3.0(typescript@5.1.6)(zod@3.21.4) wagmi: specifier: '>1.0.0' - version: 1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + version: 1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) devDependencies: '@eth-optimism/contracts-bedrock': specifier: workspace:* version: link:../contracts-bedrock '@testing-library/jest-dom': - specifier: ^5.16.5 - version: 5.16.5 + specifier: ^5.17.0 + version: 5.17.0 '@testing-library/react-hooks': specifier: ^8.0.1 version: 8.0.1(react-dom@18.2.0)(react@18.2.0) @@ -325,16 +325,16 @@ importers: version: 0.33.0(vitest@0.33.0) '@wagmi/cli': specifier: ^1.3.0 - version: 1.3.0(@wagmi/core@1.3.7)(typescript@4.9.3)(wagmi@1.0.1) + version: 1.3.0(@wagmi/core@1.3.8)(typescript@5.1.6)(wagmi@1.0.1) '@wagmi/core': - specifier: ^1.3.7 - version: 1.3.7(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + specifier: ^1.3.8 + version: 1.3.8(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) abitype: - specifier: ^0.9.0 - version: 0.9.0(typescript@4.9.3) + specifier: ^0.9.2 + version: 0.9.2(typescript@5.1.6) glob: - specifier: ^7.2.3 - version: 7.2.3 + specifier: ^10.3.3 + version: 10.3.3 isomorphic-fetch: specifier: ^3.0.0 version: 3.0.0 @@ -346,13 +346,13 @@ importers: version: 22.1.0 tsup: specifier: ^7.1.0 - version: 7.1.0(typescript@4.9.3) + version: 7.1.0(typescript@5.1.6) typescript: - specifier: ^4.9.3 - version: 4.9.3 + specifier: ^5.1.6 + version: 5.1.6 vite: - specifier: ^4.4.3 - version: 4.4.3(@types/node@12.20.20) + specifier: ^4.4.4 + version: 4.4.4(@types/node@12.20.20) vitest: specifier: ^0.33.0 version: 0.33.0(jsdom@22.1.0) @@ -453,7 +453,7 @@ importers: version: 16.1.4 ethereum-waffle: specifier: ^3.4.4 - version: 3.4.4(typescript@4.9.5) + version: 3.4.4(typescript@5.1.6) ethers: specifier: ^5.7.0 version: 5.7.1 @@ -481,7 +481,7 @@ importers: devDependencies: ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@12.20.55)(typescript@4.9.5) + version: 10.9.1(@types/node@12.20.55)(typescript@5.1.6) packages/sdk: dependencies: @@ -1540,7 +1540,7 @@ packages: - utf-8-validate dev: true - /@ethereum-waffle/compiler@3.4.4(typescript@4.9.5): + /@ethereum-waffle/compiler@3.4.4(typescript@5.1.6): resolution: {integrity: sha512-RUK3axJ8IkD5xpWjWoJgyHclOeEzDLQFga6gKpeGxiS/zBu+HB0W2FvsrrLalTFIaPw/CGYACRBSIxqiCqwqTQ==} engines: {node: '>=10.0'} dependencies: @@ -1554,7 +1554,7 @@ packages: node-fetch: 2.6.7 solc: 0.6.12 ts-generator: 0.1.1 - typechain: 3.0.0(typescript@4.9.5) + typechain: 3.0.0(typescript@5.1.6) transitivePeerDependencies: - bufferutil - encoding @@ -2466,7 +2466,7 @@ packages: '@nomiclabs/hardhat-ethers': 2.0.6(ethers@5.7.1)(hardhat@2.9.6) '@types/sinon-chai': 3.2.5 '@types/web3': 1.0.19 - ethereum-waffle: 3.4.4(typescript@4.9.5) + ethereum-waffle: 3.4.4(typescript@5.1.6) ethers: 5.7.1 hardhat: 2.9.6(chai@4.3.7) dev: true @@ -2559,7 +2559,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/name-from-folder': 2.0.0 - glob: 10.3.1 + glob: 10.3.3 minimatch: 9.0.2 read-package-json-fast: 3.0.2 dev: true @@ -2606,7 +2606,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/git': 4.1.0 - glob: 10.3.1 + glob: 10.3.3 json-parse-even-better-errors: 3.0.0 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 @@ -3022,10 +3022,10 @@ packages: - encoding - utf-8-validate - /@safe-global/safe-apps-provider@0.17.1(typescript@4.9.3): + /@safe-global/safe-apps-provider@0.17.1(typescript@5.1.6): resolution: {integrity: sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ==} dependencies: - '@safe-global/safe-apps-sdk': 8.0.0(typescript@4.9.3) + '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.1.6) events: 3.3.0 transitivePeerDependencies: - bufferutil @@ -3055,11 +3055,11 @@ packages: - encoding - utf-8-validate - /@safe-global/safe-apps-sdk@8.0.0(typescript@4.9.3): + /@safe-global/safe-apps-sdk@8.0.0(typescript@5.1.6): resolution: {integrity: sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw==} dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.7.3 - viem: 1.3.0(typescript@4.9.3)(zod@3.21.4) + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) transitivePeerDependencies: - bufferutil - encoding @@ -3475,8 +3475,8 @@ packages: pretty-format: 27.5.1 dev: false - /@testing-library/jest-dom@5.16.5: - resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} + /@testing-library/jest-dom@5.17.0: + resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} engines: {node: '>=8', npm: '>=6', yarn: '>=1'} dependencies: '@adobe/css-tools': 4.2.0 @@ -3586,7 +3586,7 @@ packages: typechain: ^3.0.0 dependencies: ethers: 5.7.1 - typechain: 3.0.0(typescript@4.9.5) + typechain: 3.0.0(typescript@5.1.6) dev: true /@types/abstract-leveldown@5.0.2: @@ -4240,8 +4240,9 @@ packages: optional: true dependencies: typescript: 4.9.3 + dev: true - /@wagmi/chains@0.2.22(typescript@4.9.3): + /@wagmi/chains@0.2.22(typescript@5.1.6): resolution: {integrity: sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==} peerDependencies: typescript: '>=4.9.4' @@ -4249,9 +4250,9 @@ packages: typescript: optional: true dependencies: - typescript: 4.9.3 + typescript: 5.1.6 - /@wagmi/chains@1.3.0(typescript@4.9.3): + /@wagmi/chains@1.3.0(typescript@5.1.6): resolution: {integrity: sha512-7tyr1irTZQpA4/4HoIiJP3XYZuJIZuWiZ1V1j5WEG3cjm8TXIlMEzO0N+hT/cZKw4/UtF2EukvB8GkDWa2S77w==} peerDependencies: typescript: '>=5.0.4' @@ -4259,21 +4260,10 @@ packages: typescript: optional: true dependencies: - typescript: 4.9.3 + typescript: 5.1.6 dev: true - /@wagmi/chains@1.5.0(typescript@4.9.3): - resolution: {integrity: sha512-JO5iqh7Km4GW/6XKKDYMq3YQ9wlOSGzzaTUQhALQ58KANxEZ70tZWhfTZAPD3fdgv4wheai7kyHDNgTW6X7fnw==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - typescript: 4.9.3 - dev: true - - /@wagmi/chains@1.6.0(typescript@4.9.3): + /@wagmi/chains@1.6.0(typescript@5.1.6): resolution: {integrity: sha512-5FRlVxse5P4ZaHG3GTvxwVANSmYJas1eQrTBHhjxVtqXoorm0aLmCHbhmN8Xo1yu09PaWKlleEvfE98yH4AgIw==} peerDependencies: typescript: '>=5.0.4' @@ -4281,10 +4271,9 @@ packages: typescript: optional: true dependencies: - typescript: 4.9.3 - dev: true + typescript: 5.1.6 - /@wagmi/cli@1.3.0(@wagmi/core@1.3.7)(typescript@4.9.3)(wagmi@1.0.1): + /@wagmi/cli@1.3.0(@wagmi/core@1.3.8)(typescript@5.1.6)(wagmi@1.0.1): resolution: {integrity: sha512-/YXmdp0XWgQEwRSVO8IjVB8KY5HK+6+eqJsZI3a+y3XMH4T/NxVBoT/JxTqV6HEivr3HOLgDcTzvQhNy3mZ0HA==} engines: {node: '>=14'} hasBin: true @@ -4300,9 +4289,9 @@ packages: wagmi: optional: true dependencies: - '@wagmi/chains': 1.3.0(typescript@4.9.3) - '@wagmi/core': 1.3.7(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) - abitype: 0.8.7(typescript@4.9.3)(zod@3.21.4) + '@wagmi/chains': 1.3.0(typescript@5.1.6) + '@wagmi/core': 1.3.8(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) + abitype: 0.8.7(typescript@5.1.6)(zod@3.21.4) abort-controller: 3.0.0 bundle-require: 3.1.2(esbuild@0.15.13) cac: 6.7.14 @@ -4322,16 +4311,16 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 prettier: 2.8.8 - typescript: 4.9.3 - viem: 1.3.0(typescript@4.9.3)(zod@3.21.4) - wagmi: 1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) + typescript: 5.1.6 + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) + wagmi: 1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) zod: 3.21.4 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@wagmi/connectors@1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + /@wagmi/connectors@1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@5.1.6)(viem@1.3.0): resolution: {integrity: sha512-fl01vym19DE1uoE+MlASw5zo3Orr/YXlJRjOKLaKYtV+Q7jOLY4TwHgq7sEMs+JYOvFICFBEAlWNNxidr51AqQ==} peerDependencies: '@wagmi/chains': '>=0.2.0' @@ -4347,14 +4336,14 @@ packages: '@ledgerhq/connect-kit-loader': 1.1.0 '@safe-global/safe-apps-provider': 0.15.2 '@safe-global/safe-apps-sdk': 7.11.0 - '@wagmi/chains': 0.2.22(typescript@4.9.3) + '@wagmi/chains': 0.2.22(typescript@5.1.6) '@walletconnect/ethereum-provider': 2.7.2(@web3modal/standalone@2.4.3) '@walletconnect/legacy-provider': 2.0.0 '@web3modal/standalone': 2.4.3(react@18.2.0) - abitype: 0.8.1(typescript@4.9.3) + abitype: 0.8.1(typescript@5.1.6) eventemitter3: 4.0.7 - typescript: 4.9.3 - viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + typescript: 5.1.6 + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - bufferutil @@ -4366,7 +4355,7 @@ packages: - utf-8-validate - zod - /@wagmi/connectors@2.6.6(@wagmi/chains@1.5.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + /@wagmi/connectors@2.6.6(@wagmi/chains@1.6.0)(react@18.2.0)(typescript@5.1.6)(viem@1.3.0): resolution: {integrity: sha512-/o1c/TCivQs8DOAUOcQvY2UIt3p2mWOAHi39D0LC74+ncpXzLC5/gyaWU38qnTxPM8s/PmTmaWDgz+VhICXrag==} peerDependencies: '@wagmi/chains': '>=1.3.0' @@ -4380,17 +4369,17 @@ packages: dependencies: '@coinbase/wallet-sdk': 3.7.1 '@ledgerhq/connect-kit-loader': 1.1.0 - '@safe-global/safe-apps-provider': 0.17.1(typescript@4.9.3) - '@safe-global/safe-apps-sdk': 8.0.0(typescript@4.9.3) - '@wagmi/chains': 1.5.0(typescript@4.9.3) + '@safe-global/safe-apps-provider': 0.17.1(typescript@5.1.6) + '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.1.6) + '@wagmi/chains': 1.6.0(typescript@5.1.6) '@walletconnect/ethereum-provider': 2.9.0(@walletconnect/modal@2.5.9) '@walletconnect/legacy-provider': 2.0.0 '@walletconnect/modal': 2.5.9(react@18.2.0) '@walletconnect/utils': 2.9.0 - abitype: 0.8.7(typescript@4.9.3)(zod@3.21.4) + abitype: 0.8.7(typescript@5.1.6)(zod@3.21.4) eventemitter3: 4.0.7 - typescript: 4.9.3 - viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + typescript: 5.1.6 + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - bufferutil @@ -4402,7 +4391,7 @@ packages: - zod dev: true - /@wagmi/core@1.0.1(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + /@wagmi/core@1.0.1(react@18.2.0)(typescript@5.1.6)(viem@1.3.0): resolution: {integrity: sha512-Zzg4Ob92QMF9NsC+z5/8JZjMn3NCCnwVWGJlv79qRX9mp5Ku40OzJNvqDnjcSGjshe6H0L/KtFZAqTlmu8lT7w==} peerDependencies: typescript: '>=4.9.4' @@ -4411,12 +4400,12 @@ packages: typescript: optional: true dependencies: - '@wagmi/chains': 0.2.22(typescript@4.9.3) - '@wagmi/connectors': 1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) - abitype: 0.8.1(typescript@4.9.3) + '@wagmi/chains': 0.2.22(typescript@5.1.6) + '@wagmi/connectors': 1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) + abitype: 0.8.1(typescript@5.1.6) eventemitter3: 4.0.7 - typescript: 4.9.3 - viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + typescript: 5.1.6 + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) zustand: 4.3.9(react@18.2.0) transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -4430,8 +4419,8 @@ packages: - utf-8-validate - zod - /@wagmi/core@1.3.7(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): - resolution: {integrity: sha512-ens31RwICdrbRanNYwlJs0DAw/LOqUPQm6qXsmEciOENT4w+7pC959LXU9xfaOADWVMekeLDmRqAGCszTNIXAg==} + /@wagmi/core@1.3.8(react@18.2.0)(typescript@5.1.6)(viem@1.3.0): + resolution: {integrity: sha512-OYSxikoMizqVnpSkFTwGE7PwFaz2k0PXteSiI0W2Mtk4j4sZzRFdP+9AWeDB6AYm0yU3WvgN1IATx0EEBKUe3w==} peerDependencies: typescript: '>=5.0.4' viem: '>=0.3.35' @@ -4439,12 +4428,12 @@ packages: typescript: optional: true dependencies: - '@wagmi/chains': 1.5.0(typescript@4.9.3) - '@wagmi/connectors': 2.6.6(@wagmi/chains@1.5.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) - abitype: 0.8.7(typescript@4.9.3)(zod@3.21.4) + '@wagmi/chains': 1.6.0(typescript@5.1.6) + '@wagmi/connectors': 2.6.6(@wagmi/chains@1.6.0)(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) + abitype: 0.8.7(typescript@5.1.6)(zod@3.21.4) eventemitter3: 4.0.7 - typescript: 4.9.3 - viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + typescript: 5.1.6 + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) zustand: 4.3.9(react@18.2.0) transitivePeerDependencies: - '@react-native-async-storage/async-storage' @@ -5011,7 +5000,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /abitype@0.8.1(typescript@4.9.3): + /abitype@0.8.1(typescript@5.1.6): resolution: {integrity: sha512-n8Di6AWb3i7HnEkBvecU6pG0a5nj5YwMvdAIwPLsQK95ulRy/XS113s/RXvSfTX1iOQJYFrEO3/q4SMWu7OwTA==} peerDependencies: typescript: '>=4.9.4' @@ -5020,9 +5009,9 @@ packages: zod: optional: true dependencies: - typescript: 4.9.3 + typescript: 5.1.6 - /abitype@0.8.11(typescript@4.9.3)(zod@3.21.4): + /abitype@0.8.11(typescript@5.1.6)(zod@3.21.4): resolution: {integrity: sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A==} peerDependencies: typescript: '>=5.0.4' @@ -5031,9 +5020,8 @@ packages: zod: optional: true dependencies: - typescript: 4.9.3 + typescript: 5.1.6 zod: 3.21.4 - dev: true /abitype@0.8.2(typescript@4.9.3)(zod@3.20.2): resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} @@ -5046,8 +5034,9 @@ packages: dependencies: typescript: 4.9.3 zod: 3.20.2 + dev: true - /abitype@0.8.7(typescript@4.9.3)(zod@3.21.4): + /abitype@0.8.7(typescript@5.1.6)(zod@3.21.4): resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} peerDependencies: typescript: '>=5.0.4' @@ -5056,12 +5045,12 @@ packages: zod: optional: true dependencies: - typescript: 4.9.3 + typescript: 5.1.6 zod: 3.21.4 dev: true - /abitype@0.9.0(typescript@4.9.3): - resolution: {integrity: sha512-6T0BC3Yo3pIZ1kABVRokXYZULob3lWEfcJosJsrCAxfKVeyXvUMGIeJADgwHioccz/mYFye2vR3eq0sNAtBk2w==} + /abitype@0.9.2(typescript@5.1.6): + resolution: {integrity: sha512-1MEiefexgeVAsRD/1uMfkvpyx+yY11HGxpvXayeMrSOgr5VY1/sT4p5LSopIKtVj90UbJNPNZSMZaV1XFW6zew==} peerDependencies: typescript: '>=5.0.4' zod: ^3 >=3.19.1 @@ -5071,7 +5060,7 @@ packages: zod: optional: true dependencies: - typescript: 4.9.3 + typescript: 5.1.6 dev: true /abort-controller@3.0.0: @@ -6660,7 +6649,7 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.2 - glob: 10.3.1 + glob: 10.3.3 lru-cache: 7.18.3 minipass: 5.0.0 minipass-collect: 1.0.2 @@ -9613,13 +9602,13 @@ packages: - utf-8-validate dev: true - /ethereum-waffle@3.4.4(typescript@4.9.5): + /ethereum-waffle@3.4.4(typescript@5.1.6): resolution: {integrity: sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q==} engines: {node: '>=10.0'} hasBin: true dependencies: '@ethereum-waffle/chai': 3.4.4 - '@ethereum-waffle/compiler': 3.4.4(typescript@4.9.5) + '@ethereum-waffle/compiler': 3.4.4(typescript@5.1.6) '@ethereum-waffle/mock-contract': 3.4.4 '@ethereum-waffle/provider': 3.4.4 ethers: 5.7.1 @@ -10930,8 +10919,8 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.1: - resolution: {integrity: sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==} + /glob@10.3.3: + resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: @@ -10939,7 +10928,7 @@ packages: jackspeak: 2.2.1 minimatch: 9.0.2 minipass: 6.0.2 - path-scurry: 1.10.0 + path-scurry: 1.10.1 dev: true /glob@7.1.4: @@ -11014,7 +11003,7 @@ packages: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.10.0 + path-scurry: 1.10.1 dev: true /global@4.4.0: @@ -15759,8 +15748,8 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.10.0: - resolution: {integrity: sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==} + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.0.0 @@ -16534,7 +16523,7 @@ packages: resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - glob: 10.3.1 + glob: 10.3.3 json-parse-even-better-errors: 3.0.0 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 @@ -17023,7 +17012,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.3.1 + glob: 10.3.3 dev: true /ripemd160@2.0.2: @@ -18616,12 +18605,12 @@ packages: typescript: 4.9.3 dev: true - /ts-essentials@6.0.7(typescript@4.9.5): + /ts-essentials@6.0.7(typescript@5.1.6): resolution: {integrity: sha512-2E4HIIj4tQJlIHuATRHayv0EfMGK3ris/GRk1E3CFnsZzeNV+hUmelbaTZHLtXaZppM5oLhHRtO04gINC4Jusw==} peerDependencies: typescript: '>=3.7.0' dependencies: - typescript: 4.9.5 + typescript: 5.1.6 dev: true /ts-generator@0.1.1: @@ -18687,7 +18676,7 @@ packages: yn: 3.1.1 dev: true - /ts-node@10.9.1(@types/node@12.20.55)(typescript@4.9.5): + /ts-node@10.9.1(@types/node@12.20.55)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -18713,7 +18702,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -18804,7 +18793,7 @@ packages: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} dev: true - /tsup@7.1.0(typescript@4.9.3): + /tsup@7.1.0(typescript@5.1.6): resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} engines: {node: '>=16.14'} hasBin: true @@ -18834,7 +18823,7 @@ packages: source-map: 0.8.0-beta.0 sucrase: 3.33.0 tree-kill: 1.2.2 - typescript: 4.9.3 + typescript: 5.1.6 transitivePeerDependencies: - supports-color - ts-node @@ -18987,7 +18976,7 @@ packages: - typescript dev: true - /typechain@3.0.0(typescript@4.9.5): + /typechain@3.0.0(typescript@5.1.6): resolution: {integrity: sha512-ft4KVmiN3zH4JUFu2WJBrwfHeDf772Tt2d8bssDTo/YcckKW2D+OwFrHXRC6hJvO3mHjFQTihoMV6fJOi0Hngg==} hasBin: true dependencies: @@ -18996,7 +18985,7 @@ packages: fs-extra: 7.0.1 js-sha3: 0.8.0 lodash: 4.17.21 - ts-essentials: 6.0.7(typescript@4.9.5) + ts-essentials: 6.0.7(typescript@5.1.6) ts-generator: 0.1.1 transitivePeerDependencies: - supports-color @@ -19045,6 +19034,11 @@ packages: hasBin: true dev: true + /typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} + hasBin: true + /typewise-core@1.2.0: resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==} dev: true @@ -19492,8 +19486,9 @@ packages: - typescript - utf-8-validate - zod + dev: true - /viem@1.3.0(typescript@4.9.3)(zod@3.21.4): + /viem@1.3.0(typescript@5.1.6)(zod@3.21.4): resolution: {integrity: sha512-gCtachbNPG9G9D7UNuiqLaLf8IFV15FypBrSpXEFeeEczXxI+Jgi9FTwDS+NJLreVrjBeZXQVj1ITTqKpItw4w==} peerDependencies: typescript: '>=5.0.4' @@ -19506,16 +19501,15 @@ packages: '@noble/hashes': 1.3.0 '@scure/bip32': 1.3.0 '@scure/bip39': 1.2.0 - '@wagmi/chains': 1.6.0(typescript@4.9.3) - abitype: 0.8.11(typescript@4.9.3)(zod@3.21.4) + '@wagmi/chains': 1.6.0(typescript@5.1.6) + abitype: 0.8.11(typescript@5.1.6)(zod@3.21.4) isomorphic-ws: 5.0.0(ws@8.12.0) - typescript: 4.9.3 + typescript: 5.1.6 ws: 8.12.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod - dev: true /vite-node@0.28.3(@types/node@17.0.21): resolution: {integrity: sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg==} @@ -19529,7 +19523,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.4.3(@types/node@17.0.21) + vite: 4.4.4(@types/node@17.0.21) transitivePeerDependencies: - '@types/node' - less @@ -19551,7 +19545,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.3(@types/node@12.20.55) + vite: 4.4.4(@types/node@12.20.55) transitivePeerDependencies: - '@types/node' - less @@ -19563,8 +19557,8 @@ packages: - terser dev: true - /vite@4.4.3(@types/node@12.20.20): - resolution: {integrity: sha512-IMnXQXXWgLi5brBQx/4WzDxdzW0X3pjO4nqFJAuNvwKtxzAmPzFE1wszW3VDpAGQJm3RZkm/brzRdyGsnwgJIA==} + /vite@4.4.4(@types/node@12.20.20): + resolution: {integrity: sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -19599,8 +19593,8 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.4.3(@types/node@12.20.55): - resolution: {integrity: sha512-IMnXQXXWgLi5brBQx/4WzDxdzW0X3pjO4nqFJAuNvwKtxzAmPzFE1wszW3VDpAGQJm3RZkm/brzRdyGsnwgJIA==} + /vite@4.4.4(@types/node@12.20.55): + resolution: {integrity: sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -19635,8 +19629,8 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.4.3(@types/node@17.0.21): - resolution: {integrity: sha512-IMnXQXXWgLi5brBQx/4WzDxdzW0X3pjO4nqFJAuNvwKtxzAmPzFE1wszW3VDpAGQJm3RZkm/brzRdyGsnwgJIA==} + /vite@4.4.4(@types/node@17.0.21): + resolution: {integrity: sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -19714,7 +19708,7 @@ packages: tinybench: 2.3.1 tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.4.3(@types/node@17.0.21) + vite: 4.4.4(@types/node@17.0.21) vite-node: 0.28.3(@types/node@17.0.21) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -19780,7 +19774,7 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.3(@types/node@12.20.55) + vite: 4.4.4(@types/node@12.20.55) vite-node: 0.33.0(@types/node@12.20.55) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -19808,7 +19802,7 @@ packages: xml-name-validator: 4.0.0 dev: true - /wagmi@1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.3)(viem@0.3.30): + /wagmi@1.0.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6)(viem@1.3.0): resolution: {integrity: sha512-+2UkZG9eA3tKqXj1wvlvI8mL0Bcff7Tf5CKfUOyQsdKcY+J5rfwYYya25G+jja57umpHFtfxRaL7xDkNjehrRg==} peerDependencies: react: '>=17.0.0' @@ -19821,12 +19815,12 @@ packages: '@tanstack/query-sync-storage-persister': 4.29.25 '@tanstack/react-query': 4.29.25(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query-persist-client': 4.29.25(@tanstack/react-query@4.29.25) - '@wagmi/core': 1.0.1(react@18.2.0)(typescript@4.9.3)(viem@0.3.30) - abitype: 0.8.1(typescript@4.9.3) + '@wagmi/core': 1.0.1(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) + abitype: 0.8.1(typescript@5.1.6) react: 18.2.0 - typescript: 4.9.3 + typescript: 5.1.6 use-sync-external-store: 1.2.0(react@18.2.0) - viem: 0.3.30(typescript@4.9.3)(zod@3.20.2) + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - bufferutil @@ -20763,10 +20757,10 @@ packages: /zod@3.20.2: resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==} + dev: true /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: true /zustand@4.3.9(react@18.2.0): resolution: {integrity: sha512-Tat5r8jOMG1Vcsj8uldMyqYKC5IZvQif8zetmLHs9WoZlntTHmIoNM8TpLRY31ExncuUvUOXehd0kvahkuHjDw==}