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..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 @@ -709,6 +710,24 @@ 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 + sdk-next-tests: docker: - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:latest @@ -1336,6 +1355,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/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/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", diff --git a/packages/contracts-bedrock/package.json b/packages/contracts-bedrock/package.json index 8fd2e5052a1b..291d55e5474e 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": "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", "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..11b256460b57 --- /dev/null +++ b/packages/contracts-ts/abis.json @@ -0,0 +1,11132 @@ +{ + "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": [] + } + ], + "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": "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": [] + } + ], + "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": "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" + } + ] + } + ], + "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" + } + ] + } + ], + "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" + } + ] + } + ], + "Optimist": [ + { + "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" + } + ] + } + ], + "OptimistAllowlist": [ + { + "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" + } + ] + } + ], + "OptimistInviter": [ + { + "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" + } + ] + } + ], + "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" + } + ] + } + ], + "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..bc9056510c60 --- /dev/null +++ b/packages/contracts-ts/addresses.json @@ -0,0 +1,139 @@ +{ + "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" + } +} 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..1b553e4db1d7 --- /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/constants.js", + "module": "dist/constants.mjs", + "types": "src/constants.ts", + "exports": { + ".": { + "types": "./src/constants.ts", + "import": "./dist/constants.js", + "require": "./dist/constants.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": "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:*", + "@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.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": "^5.1.6", + "vite": "^4.4.4", + "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": "^1.3.0" + } +} 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.ts b/packages/contracts-ts/src/actions.ts new file mode 100644 index 000000000000..9333bf45c20d --- /dev/null +++ b/packages/contracts-ts/src/actions.ts @@ -0,0 +1,12200 @@ +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:42:03 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 + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AssetReceiver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverABI = [ + { + 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' }, +] 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 = [ + { + 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' }], + }, +] as const + +/** + * - [__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 checkBalanceHighAddress = { + 1: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 5: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 420: '0x5d7103853f12109A7d27F118e54BbC654ad847E9', +} as const + +/** + * - [__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 checkBalanceHighConfig = { + address: checkBalanceHighAddress, + abi: checkBalanceHighABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckBalanceLow +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__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 checkBalanceLowABI = [ + { + 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' }], + }, +] 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 = [ + { + 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' }], + }, +] 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: 'pure', + type: 'function', + 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/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 checkTrueAddress = { + 1: '0x5c741a38cb11424711231777D71689C458eE835D', + 5: '0x5c741a38cb11424711231777D71689C458eE835D', + 420: '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32', +} as const + +/** + * - [__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 checkTrueConfig = { + address: checkTrueAddress, + abi: checkTrueABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieAddress = { + 1: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieConfig = { + address: drippieAddress, + abi: drippieABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliAddress = { + 5: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliConfig = { + address: drippieGoerliAddress, + abi: drippieGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliAddress = { + 420: '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliConfig = { + address: drippieOptimismGoerliAddress, + abi: drippieOptimismGoerliABI, +} 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 + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// 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, + }) +} + +/** + * 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 teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function getTeleportrWithdrawer( + config: Omit & { + chainId?: keyof typeof teleportrWithdrawerAddress + } +) { + return getContract({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function readTeleportrWithdrawer< + TAbi extends readonly unknown[] = typeof teleportrWithdrawerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof teleportrWithdrawerAddress + } +) { + return readContract({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function writeTeleportrWithdrawer< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof teleportrWithdrawerAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof teleportrWithdrawerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof teleportrWithdrawerAddress + }) +) { + return writeContract({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function prepareWriteTeleportrWithdrawer< + TAbi extends readonly unknown[] = typeof teleportrWithdrawerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } +) { + return prepareWriteContract({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +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 attestationStationAddress + } +) { + return getContract({ + abi: attestationStationABI, + address: + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ 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 readAttestationStation< + TAbi extends readonly unknown[] = typeof attestationStationABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof attestationStationAddress + } +) { + return readContract({ + abi: attestationStationABI, + address: + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ 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 writeAttestationStation< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof attestationStationAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof attestationStationAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof attestationStationABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof attestationStationAddress + }) +) { + return writeContract({ + abi: attestationStationABI, + address: + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ 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 prepareWriteAttestationStation< + TAbi extends readonly unknown[] = typeof attestationStationABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof attestationStationAddress } +) { + return prepareWriteContract({ + abi: attestationStationABI, + address: + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ 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 watchAttestationStationEvent< + TAbi extends readonly unknown[] = typeof attestationStationABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof attestationStationAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: attestationStationABI, + address: + attestationStationAddress[ + config.chainId as keyof typeof attestationStationAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 getL2Erc721Bridge( + config: Omit & { + chainId?: keyof typeof l2Erc721BridgeAddress + } +) { + return getContract({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 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[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 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[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 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[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 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[ + config.chainId as keyof typeof l2Erc721BridgeAddress + ], + ...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 optimistABI}__. + * + * - [__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 getOptimist( + config: Omit & { + chainId?: keyof typeof optimistAddress + } +) { + return getContract({ + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimistABI}__. + * + * - [__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 readOptimist< + TAbi extends readonly unknown[] = typeof optimistABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof optimistAddress + } +) { + return readContract({ + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimistABI}__. + * + * - [__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 writeOptimist< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof optimistAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimistAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimistAddress + }) +) { + return writeContract({ + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimistABI}__. + * + * - [__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 prepareWriteOptimist< + TAbi extends readonly unknown[] = typeof optimistABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAddress } +) { + return prepareWriteContract({ + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimistABI}__. + * + * - [__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 watchOptimistEvent< + TAbi extends readonly unknown[] = typeof optimistABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimistABI, + address: optimistAddress[config.chainId as keyof typeof optimistAddress], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link optimistAllowlistABI}__. + * + * - [__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 getOptimistAllowlist( + config: Omit & { + chainId?: keyof typeof optimistAllowlistAddress + } +) { + return getContract({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + config.chainId as keyof typeof optimistAllowlistAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimistAllowlistABI}__. + * + * - [__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 readOptimistAllowlist< + TAbi extends readonly unknown[] = typeof optimistAllowlistABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof optimistAllowlistAddress + } +) { + return readContract({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + config.chainId as keyof typeof optimistAllowlistAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link getContract}__ 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 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 optimistInviterAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimistInviterAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof optimistInviterAddress + }) +) { + return writeContract({ + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ 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 prepareWriteOptimistInviter< + TAbi extends readonly unknown[] = typeof optimistInviterABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistInviterAddress } +) { + return prepareWriteContract({ + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ 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 watchOptimistInviterEvent< + TAbi extends readonly unknown[] = typeof optimistInviterABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistInviterAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimistInviterABI, + address: + optimistInviterAddress[ + config.chainId as keyof typeof optimistInviterAddress + ], + ...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 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..6aaaee7a7c9b --- /dev/null +++ b/packages/contracts-ts/src/constants.ts @@ -0,0 +1,15457 @@ +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:42:02 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 + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AssetReceiver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverABI = [ + { + 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' }, +] 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 = [ + { + 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' }], + }, +] as const + +/** + * - [__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 checkBalanceHighAddress = { + 1: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 5: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 420: '0x5d7103853f12109A7d27F118e54BbC654ad847E9', +} as const + +/** + * - [__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 checkBalanceHighConfig = { + address: checkBalanceHighAddress, + abi: checkBalanceHighABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckBalanceLow +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__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 checkBalanceLowABI = [ + { + 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' }], + }, +] 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 = [ + { + 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' }], + }, +] 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: 'pure', + type: 'function', + 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/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 checkTrueAddress = { + 1: '0x5c741a38cb11424711231777D71689C458eE835D', + 5: '0x5c741a38cb11424711231777D71689C458eE835D', + 420: '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32', +} as const + +/** + * - [__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 checkTrueConfig = { + address: checkTrueAddress, + abi: checkTrueABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieAddress = { + 1: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieConfig = { + address: drippieAddress, + abi: drippieABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliAddress = { + 5: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliConfig = { + address: drippieGoerliAddress, + abi: drippieGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliAddress = { + 420: '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliConfig = { + address: drippieOptimismGoerliAddress, + abi: drippieOptimismGoerliABI, +} 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 + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// 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: [ + { + 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: [], + }, + ], + 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: '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: [], + }, + ], + 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: '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' }], + }, + ], + 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' }], + }, + ], + 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' }], + }, + ], + Optimist: [ + { + 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' }], + }, + ], + OptimistAllowlist: [ + { + 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' }], + }, + ], + OptimistInviter: [ + { + 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' }], + }, + ], + 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' }], + }, + ], + 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/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..1314f38ff949 --- /dev/null +++ b/packages/contracts-ts/src/react.ts @@ -0,0 +1,29177 @@ +// Generated by @wagmi/cli@1.3.0 on 7/17/2023 at 7:42:04 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 + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AssetReceiver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x15DdA60616Ffca20371ED1659dBB78E888f65556) + */ +export const assetReceiverABI = [ + { + 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' }, +] 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 = [ + { + 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' }], + }, +] as const + +/** + * - [__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 checkBalanceHighAddress = { + 1: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 5: '0x7eC64a8a591bFf829ff6C8be76074D540ACb813F', + 420: '0x5d7103853f12109A7d27F118e54BbC654ad847E9', +} as const + +/** + * - [__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 checkBalanceHighConfig = { + address: checkBalanceHighAddress, + abi: checkBalanceHighABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckBalanceLow +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__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 checkBalanceLowABI = [ + { + 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' }], + }, +] 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 = [ + { + 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' }], + }, +] 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: 'pure', + type: 'function', + 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/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 checkTrueAddress = { + 1: '0x5c741a38cb11424711231777D71689C458eE835D', + 5: '0x5c741a38cb11424711231777D71689C458eE835D', + 420: '0x47443D0C184e022F19BD1578F5bca6B8a9F58E32', +} as const + +/** + * - [__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 checkTrueConfig = { + address: checkTrueAddress, + abi: checkTrueABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieAddress = { + 1: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', +} as const + +/** + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieConfig = { + address: drippieAddress, + abi: drippieABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliAddress = { + 5: '0x44b3A2a040057eBafC601A78647e805fd58B1f50', +} as const + +/** + * [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x44b3A2a040057eBafC601A78647e805fd58B1f50) + */ +export const drippieGoerliConfig = { + address: drippieGoerliAddress, + abi: drippieGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drippie_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliABI = [ + { + 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' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliAddress = { + 420: '0x8D8d533C16D23847EB04EEB0925be8900Dd3af86', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x8D8d533C16D23847EB04EEB0925be8900Dd3af86) + */ +export const drippieOptimismGoerliConfig = { + address: drippieOptimismGoerliAddress, + abi: drippieOptimismGoerliABI, +} 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 + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// 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) +} + +/** + * 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 teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"data"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerData< + TFunctionName extends 'data', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'data', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"owner"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'owner', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"recipient"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerRecipient< + TFunctionName extends 'recipient', + TSelectData = ReadContractResult +>( + 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 useContractRead({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'teleportr', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + TFunctionName, + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"CALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerCall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + '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: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'CALL', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerDelegatecall< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'DELEGATECALL' + >['request']['abi'], + 'DELEGATECALL', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'DELEGATECALL' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'DELEGATECALL', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'DELEGATECALL' + } = {} as any +) { + return useContractWrite( + { + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'DELEGATECALL', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setData"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerSetData< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'setData' + >['request']['abi'], + 'setData', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setData' } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setData', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setData' + } = {} as any +) { + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setData', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerSetOwner< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'setOwner' + >['request']['abi'], + 'setOwner', + TMode + > & { address?: Address; chainId?: TChainId; functionName?: 'setOwner' } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setOwner', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setOwner' + } = {} as any +) { + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setOwner', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setRecipient"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerSetRecipient< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'setRecipient' + >['request']['abi'], + 'setRecipient', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setRecipient' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setRecipient', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setRecipient' + } = {} as any +) { + return useContractWrite( + { + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setRecipient', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setTeleportr"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerSetTeleportr< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'setTeleportr' + >['request']['abi'], + 'setTeleportr', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'setTeleportr' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setTeleportr', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'setTeleportr' + } = {} as any +) { + 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 teleportrWithdrawerABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWithdrawErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'withdrawERC721' + >['request']['abi'], + 'withdrawERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawERC721' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawERC721' + } = {} as any +) { + return useContractWrite< + typeof teleportrWithdrawerABI, + 'withdrawERC721', + TMode + >({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWithdrawEth< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'withdrawETH' + >['request']['abi'], + 'withdrawETH', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawETH' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawETH', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawETH' + } = {} as any +) { + return useContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawETH', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawFromTeleportr"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function useTeleportrWithdrawerWithdrawFromTeleportr< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof teleportrWithdrawerAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof teleportrWithdrawerABI, + 'withdrawFromTeleportr' + >['request']['abi'], + 'withdrawFromTeleportr', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'withdrawFromTeleportr' + } + : UseContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawFromTeleportr', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'withdrawFromTeleportr' + } = {} as any +) { + 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 UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"DELEGATECALL"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerDelegatecall( + config: Omit< + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'DELEGATECALL' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'DELEGATECALL', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setData"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerSetData( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setData', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setOwner"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerSetOwner( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setOwner', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setRecipient"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerSetRecipient( + config: Omit< + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setRecipient' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setRecipient', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"setTeleportr"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerSetTeleportr( + config: Omit< + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'setTeleportr' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'setTeleportr', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawERC20"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerWithdrawErc20( + config: Omit< + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawERC20' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawERC20', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawERC721"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerWithdrawErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawERC721' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawETH"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerWithdrawEth( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: teleportrWithdrawerABI, + address: teleportrWithdrawerAddress[1], + functionName: 'withdrawETH', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link teleportrWithdrawerABI}__ and `functionName` set to `"withdrawFromTeleportr"`. + * + * [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x78A25524D90E3D0596558fb43789bD800a5c3007) + */ +export function usePrepareTeleportrWithdrawerWithdrawFromTeleportr( + config: Omit< + UsePrepareContractWriteConfig< + typeof teleportrWithdrawerABI, + 'withdrawFromTeleportr' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof teleportrWithdrawerAddress } = {} as any +) { + return usePrepareContractWrite({ + 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 any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link attestationStationABI}__ and `functionName` set to `"attest"`. + * + * - [__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 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + functionName: 'attest', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ 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 usePrepareAttestationStationWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link attestationStationABI}__ and `functionName` set to `"attest"`. + * + * - [__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 usePrepareAttestationStationAttest( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + functionName: 'attest', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ 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 useAttestationStationEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link attestationStationABI}__ and `eventName` set to `"AttestationCreated"`. + * + * - [__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 useAttestationStationAttestationCreatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof attestationStationAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: attestationStationABI, + address: + attestationStationAddress[ + chainId as keyof typeof attestationStationAddress + ], + eventName: 'AttestationCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 useL2Erc721BridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"messenger"`. + * + * - [__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 useL2Erc721BridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'messenger', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. + * + * - [__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 useL2Erc721BridgeOtherBridge< + TFunctionName extends 'otherBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'otherBridge', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"version"`. + * + * - [__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 useL2Erc721BridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 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 +) { + 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * - [__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 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ 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 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 +) { + 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 any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 usePrepareL2Erc721BridgeWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ 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 usePrepareL2Erc721BridgeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * - [__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 usePrepareL2Erc721BridgeBridgeErc721To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'bridgeERC721To', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * 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< + UsePrepareContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + functionName: 'finalizeBridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * - [__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 useL2Erc721BridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. + * + * - [__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 useL2Erc721BridgeErc721BridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: + l2Erc721BridgeAddress[chainId as keyof typeof l2Erc721BridgeAddress], + eventName: 'ERC721BridgeFinalized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. + * + * - [__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 useL2Erc721BridgeErc721BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} 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 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 optimistABI}__. + * + * - [__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 useOptimistRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistAttestationStation< + TFunctionName extends 'ATTESTATION_STATION', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'ATTESTATION_STATION', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistBaseUriAttestationKey< + TFunctionName extends 'BASE_URI_ATTESTATION_KEY', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'BASE_URI_ATTESTATION_KEY', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistBaseUriAttestor< + TFunctionName extends 'BASE_URI_ATTESTOR', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'BASE_URI_ATTESTOR', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistOptimistAllowlist< + TFunctionName extends 'OPTIMIST_ALLOWLIST', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'OPTIMIST_ALLOWLIST', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistApprove< + TFunctionName extends 'approve', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'approve', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistBalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'balanceOf', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistBaseUri< + TFunctionName extends 'baseURI', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'baseURI', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistGetApproved< + TFunctionName extends 'getApproved', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'getApproved', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistIsApprovedForAll< + TFunctionName extends 'isApprovedForAll', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'isApprovedForAll', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistIsOnAllowList< + TFunctionName extends 'isOnAllowList', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'isOnAllowList', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistName< + TFunctionName extends 'name', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'name', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistOwnerOf< + TFunctionName extends 'ownerOf', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'ownerOf', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistSymbol< + TFunctionName extends 'symbol', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'symbol', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistTokenIdOfAddress< + TFunctionName extends 'tokenIdOfAddress', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'tokenIdOfAddress', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistTokenUri< + TFunctionName extends 'tokenURI', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'tokenURI', + ...config, + } as UseContractReadConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function useOptimistVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistABI}__. + * + * - [__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 useOptimistWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimistABI, + 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: 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 +) { + 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 optimistABI}__ and `functionName` set to `"setApprovalForAll"`. + * + * - [__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 useOptimistSetApprovalForAll< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + 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'], + 'transferFrom', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'transferFrom' + } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'transferFrom' + } = {} as any +) { + 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 optimistABI}__. + * + * - [__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 usePrepareOptimistWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function usePrepareOptimistBurn( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'burn', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function usePrepareOptimistInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * 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/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x2335022c740d17c2837f9C884Bfe4fFdbf0A95D5) + */ +export function usePrepareOptimistMint( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'mint', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ 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 usePrepareOptimistSafeTransferFrom( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'safeTransferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistABI}__ and `functionName` set to `"setApprovalForAll"`. + * + * - [__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 usePrepareOptimistSetApprovalForAll( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'setApprovalForAll', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ 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 usePrepareOptimistTransferFrom( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistABI, + address: optimistAddress[chainId as keyof typeof optimistAddress], + functionName: 'transferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__. + * + * - [__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 useOptimistEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { 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], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistABI}__ and `eventName` set to `"Approval"`. + * + * - [__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 useOptimistApprovalEvent( + 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: '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 UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__. + * + * - [__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 useOptimistAllowlistRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig< + typeof optimistAllowlistABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistAllowlistAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"ALLOWLIST_ATTESTOR"`. + * + * - [__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 useOptimistAllowlistAllowlistAttestor< + TFunctionName extends 'ALLOWLIST_ATTESTOR', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'ALLOWLIST_ATTESTOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"ATTESTATION_STATION"`. + * + * - [__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 useOptimistAllowlistAttestationStation< + TFunctionName extends 'ATTESTATION_STATION', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'ATTESTATION_STATION', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"COINBASE_QUEST_ATTESTOR"`. + * + * - [__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 useOptimistAllowlistCoinbaseQuestAttestor< + TFunctionName extends 'COINBASE_QUEST_ATTESTOR', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'COINBASE_QUEST_ATTESTOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY"`. + * + * - [__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 useOptimistAllowlistCoinbaseQuestEligibleAttestationKey< + TFunctionName extends 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"OPTIMIST_CAN_MINT_ATTESTATION_KEY"`. + * + * - [__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 useOptimistAllowlistOptimistCanMintAttestationKey< + TFunctionName extends 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'OPTIMIST_CAN_MINT_ATTESTATION_KEY', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"OPTIMIST_INVITER"`. + * + * - [__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 useOptimistAllowlistOptimistInviter< + TFunctionName extends 'OPTIMIST_INVITER', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'OPTIMIST_INVITER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"isAllowedToMint"`. + * + * - [__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 useOptimistAllowlistIsAllowedToMint< + TFunctionName extends 'isAllowedToMint', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'isAllowedToMint', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistAllowlistABI}__ and `functionName` set to `"version"`. + * + * - [__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 useOptimistAllowlistVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistAllowlistABI, + address: + optimistAllowlistAddress[ + chainId as keyof typeof optimistAllowlistAddress + ], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ 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 useOptimistInviterRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"ATTESTATION_STATION"`. + * + * - [__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 useOptimistInviterAttestationStation< + TFunctionName extends 'ATTESTATION_STATION', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'ATTESTATION_STATION', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"CAN_INVITE_ATTESTATION_KEY"`. + * + * - [__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 useOptimistInviterCanInviteAttestationKey< + TFunctionName extends 'CAN_INVITE_ATTESTATION_KEY', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'CAN_INVITE_ATTESTATION_KEY', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"CLAIMABLE_INVITE_TYPEHASH"`. + * + * - [__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 useOptimistInviterClaimableInviteTypehash< + TFunctionName extends 'CLAIMABLE_INVITE_TYPEHASH', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'CLAIMABLE_INVITE_TYPEHASH', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"EIP712_VERSION"`. + * + * - [__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 useOptimistInviterEip712Version< + TFunctionName extends 'EIP712_VERSION', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'EIP712_VERSION', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"INVITE_GRANTER"`. + * + * - [__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 useOptimistInviterInviteGranter< + TFunctionName extends 'INVITE_GRANTER', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'INVITE_GRANTER', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"MIN_COMMITMENT_PERIOD"`. + * + * - [__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 useOptimistInviterMinCommitmentPeriod< + TFunctionName extends 'MIN_COMMITMENT_PERIOD', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'MIN_COMMITMENT_PERIOD', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"commitmentTimestamps"`. + * + * - [__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 useOptimistInviterCommitmentTimestamps< + TFunctionName extends 'commitmentTimestamps', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'commitmentTimestamps', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"inviteCounts"`. + * + * - [__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 useOptimistInviterInviteCounts< + TFunctionName extends 'inviteCounts', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'inviteCounts', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"usedNonces"`. + * + * - [__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 useOptimistInviterUsedNonces< + TFunctionName extends 'usedNonces', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'usedNonces', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"version"`. + * + * - [__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 useOptimistInviterVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + 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: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'version', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ 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 useOptimistInviterWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress +>( + 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"claimInvite"`. + * + * - [__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 useOptimistInviterClaimInvite< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress +>( + 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'claimInvite', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"commitInvite"`. + * + * - [__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 useOptimistInviterCommitInvite< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress +>( + 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'commitInvite', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"initialize"`. + * + * - [__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 useOptimistInviterInitialize< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress +>( + 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"setInviteCounts"`. + * + * - [__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 useOptimistInviterSetInviteCounts< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof optimistInviterAddress +>( + 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 +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'setInviteCounts', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ 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 usePrepareOptimistInviterWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"claimInvite"`. + * + * - [__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 usePrepareOptimistInviterClaimInvite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'claimInvite', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"commitInvite"`. + * + * - [__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 usePrepareOptimistInviterCommitInvite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'commitInvite', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"initialize"`. + * + * - [__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 usePrepareOptimistInviterInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimistInviterABI}__ and `functionName` set to `"setInviteCounts"`. + * + * - [__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 usePrepareOptimistInviterSetInviteCounts( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return usePrepareContractWrite({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + functionName: 'setInviteCounts', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ 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 useOptimistInviterEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistInviterABI}__ and `eventName` set to `"Initialized"`. + * + * - [__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 useOptimistInviterInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimistInviterABI}__ and `eventName` set to `"InviteClaimed"`. + * + * - [__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 useOptimistInviterInviteClaimedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof optimistInviterAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: optimistInviterABI, + address: + optimistInviterAddress[chainId as keyof typeof optimistInviterAddress], + eventName: 'InviteClaimed', + ...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 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..08f18f247364 --- /dev/null +++ b/packages/contracts-ts/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'tsup' +import packageJson from './package.json' + +export default defineConfig({ + name: packageJson.name, + entry: ['src/constants.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..d176cf5a6877 --- /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 + * Keep this in sync with op-bindings/predeploys/addresses.go in meantime + */ +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 bedrock 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..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: @@ -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: ^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@5.1.6)(viem@1.3.0) + devDependencies: + '@eth-optimism/contracts-bedrock': + specifier: workspace:* + version: link:../contracts-bedrock + '@testing-library/jest-dom': + 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) + '@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.8)(typescript@5.1.6)(wagmi@1.0.1) + '@wagmi/core': + specifier: ^1.3.8 + version: 1.3.8(react@18.2.0)(typescript@5.1.6)(viem@1.3.0) + abitype: + specifier: ^0.9.2 + version: 0.9.2(typescript@5.1.6) + glob: + specifier: ^10.3.3 + version: 10.3.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@5.1.6) + typescript: + specifier: ^5.1.6 + version: 5.1.6 + vite: + 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) + packages/core-utils: dependencies: '@ethersproject/abi': @@ -386,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 @@ -414,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: @@ -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] @@ -1458,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: @@ -1472,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 @@ -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==} @@ -2264,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 @@ -2357,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 @@ -2404,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 @@ -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@5.1.6): + resolution: {integrity: sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ==} + dependencies: + '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.1.6) + 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@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@5.1.6)(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,83 +3317,288 @@ 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: - resolution: {integrity: sha512-+jA1XXF3jsz+Z7FcuiNqgK53hTa/luglT2TyTpKPqoYbxVY+mCPF22Rm+q3KPBrMHJwNXFrTViHszBOfU4vftQ==} - dev: true + /@stablelib/random@1.0.2: + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 - /@types/bn.js@4.11.6: - resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} + /@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.17.0: + resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} + 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@5.1.6) + 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: '@types/node': 12.20.55 dev: true @@ -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,760 @@ 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 + dev: true + + /@wagmi/chains@0.2.22(typescript@5.1.6): + resolution: {integrity: sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.1.6 + + /@wagmi/chains@1.3.0(typescript@5.1.6): + resolution: {integrity: sha512-7tyr1irTZQpA4/4HoIiJP3XYZuJIZuWiZ1V1j5WEG3cjm8TXIlMEzO0N+hT/cZKw4/UtF2EukvB8GkDWa2S77w==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.1.6 + dev: true + + /@wagmi/chains@1.6.0(typescript@5.1.6): + resolution: {integrity: sha512-5FRlVxse5P4ZaHG3GTvxwVANSmYJas1eQrTBHhjxVtqXoorm0aLmCHbhmN8Xo1yu09PaWKlleEvfE98yH4AgIw==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.1.6 + + /@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 + 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@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 + 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: 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@5.1.6)(viem@1.3.0): + 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@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@5.1.6) + eventemitter3: 4.0.7 + typescript: 5.1.6 + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) + 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.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' + 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@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@5.1.6)(zod@3.21.4) + eventemitter3: 4.0.7 + typescript: 5.1.6 + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) + 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@5.1.6)(viem@1.3.0): + 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@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: 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' + - bufferutil + - debug + - encoding + - immer + - lokijs + - react + - supports-color + - utf-8-validate + - zod + + /@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' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@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: 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' + - 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 +4986,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 +5000,29 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true + /abitype@0.8.1(typescript@5.1.6): + resolution: {integrity: sha512-n8Di6AWb3i7HnEkBvecU6pG0a5nj5YwMvdAIwPLsQK95ulRy/XS113s/RXvSfTX1iOQJYFrEO3/q4SMWu7OwTA==} + peerDependencies: + typescript: '>=4.9.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 5.1.6 + + /abitype@0.8.11(typescript@5.1.6)(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: 5.1.6 + zod: 3.21.4 + /abitype@0.8.2(typescript@4.9.3)(zod@3.20.2): resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} peerDependencies: @@ -3646,6 +5036,33 @@ packages: zod: 3.20.2 dev: true + /abitype@0.8.7(typescript@5.1.6)(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: 5.1.6 + zod: 3.21.4 + dev: true + + /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 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 5.1.6 + dev: true + /abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -3751,8 +5168,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 +5186,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 +5278,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 +5297,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 +5352,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 +5525,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 +5584,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 +6151,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 +6201,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 +6226,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 +6256,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 +6360,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 +6492,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 +6538,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 +6565,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'} @@ -5179,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 @@ -5248,6 +6718,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 +6751,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 +6824,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 +6847,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 +6897,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 +6995,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 +7096,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 +7190,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 +7268,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 +7438,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 +7561,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 +7627,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 +7688,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 +7800,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 +7841,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 +7966,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 +8027,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 +8048,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 +8068,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 +8108,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 +8145,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 +8163,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 +8185,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 +8206,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 +8254,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 +8268,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 +8314,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 +8370,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 +8427,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 +8490,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 +8545,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 +8560,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 +8578,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 +8596,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 +8614,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 +8632,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 +8650,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 +8668,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 +8686,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 +8704,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 +8722,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 +8740,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 +8758,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 +8776,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 +8794,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 +8812,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 +8830,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 +8848,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 +8866,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 +8884,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 +8902,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 +8920,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 +8980,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 +9021,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 +9412,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 +9430,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 +9500,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==} @@ -7672,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 @@ -7921,6 +9851,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 +9915,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 +9970,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 +10005,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 +10170,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 +10187,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 +10218,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 +10241,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 +10269,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 +10299,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 +10380,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 +10451,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 +10512,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' @@ -8892,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: @@ -8901,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: @@ -8946,6 +10973,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 +10984,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==} @@ -8976,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: @@ -9014,7 +11041,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 +11052,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 +11372,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 +11432,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 +11520,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 +11541,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 +11578,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 +11723,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 +11789,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 +11956,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 +11981,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 +12061,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 +12083,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 +12112,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 +12161,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 +12174,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 +12211,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 +12236,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 +12258,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 +12276,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 +12301,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 +12312,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 +12322,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 +12347,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 +12384,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 +12510,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 +12594,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 +12609,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 +12642,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 +12684,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 +12718,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 +12726,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 +13092,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 +13150,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 +13200,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 +13240,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 +13257,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 +13270,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 +13304,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 +13339,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 +13392,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 +13413,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 +13457,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 +13482,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 +13963,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 +14007,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 +14381,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 +14439,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 +14474,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 +14559,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 +14591,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 +14613,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 +14884,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 +14923,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 +15073,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 +15124,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 +15206,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 +15239,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 +15299,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 +15402,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 +15548,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 +15632,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 +15699,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 +15722,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,11 +15740,16 @@ 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==} - /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 @@ -13360,7 +15821,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 +15829,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 +15842,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 +15873,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 +15889,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 +15935,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 +15968,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 +15982,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 +16069,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 +16120,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 +16202,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 +16304,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 +16333,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 +16358,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 +16437,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} @@ -13943,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 @@ -14082,6 +16662,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 +16689,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 +16889,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 +16957,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: @@ -14417,7 +17012,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.3.1 + glob: 10.3.3 dev: true /ripemd160@2.0.2: @@ -14441,6 +17036,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 +17078,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 +17108,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 +17130,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 +17147,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 +17241,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /send@0.17.1: resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==} @@ -14650,6 +17285,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 +17379,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 +17522,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 +17677,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 +17738,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 +17787,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 +17803,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 +17845,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 +17884,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 +17929,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 +18084,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 +18127,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 +18161,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 +18234,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 +18361,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 +18373,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 +18413,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 +18422,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 +18513,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 +18532,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'} @@ -15811,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: @@ -15834,6 +18628,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 +18660,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 @@ -15878,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: @@ -15893,10 +18691,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 @@ -15904,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 @@ -15943,7 +18741,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 +18788,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@5.1.6): + 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: 5.1.6 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsutils@3.21.0(typescript@4.9.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -16143,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: @@ -16152,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 @@ -16170,7 +19003,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 +19015,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 @@ -16202,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 @@ -16236,6 +19073,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 +19187,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 +19239,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 +19281,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 +19309,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 +19326,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 +19345,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 +19374,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 +19409,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 @@ -16580,6 +19488,29 @@ packages: - zod dev: true + /viem@1.3.0(typescript@5.1.6)(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@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: 5.1.6 + ws: 8.12.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + /vite-node@0.28.3(@types/node@17.0.21): resolution: {integrity: sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg==} engines: {node: '>=v14.16.0'} @@ -16592,10 +19523,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.4(@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.4(@types/node@12.20.55) transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss @@ -16603,13 +19557,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.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: + '@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.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: + '@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.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: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -16619,6 +19646,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -16629,10 +19658,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 +19708,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.4(@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.4(@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 +19795,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@5.1.6)(viem@1.3.0): + 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@5.1.6)(viem@1.3.0) + abitype: 0.8.1(typescript@5.1.6) + react: 18.2.0 + typescript: 5.1.6 + use-sync-external-store: 1.2.0(react@18.2.0) + viem: 1.3.0(typescript@5.1.6)(zod@3.21.4) + 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 +19843,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 +20182,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 +20220,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 +20235,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 +20271,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 +20515,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /ws@8.12.0: resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} @@ -17343,7 +20527,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 +20574,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 +20620,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'} @@ -17548,6 +20759,24 @@ packages: resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==} dev: true + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + + /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