From 6175b772568a70881ffd2a2430387ae42ea50faa Mon Sep 17 00:00:00 2001 From: Will Cory Date: Tue, 11 Jul 2023 12:22:37 -0700 Subject: [PATCH] feat: Add ts contract package for TS different package nah do it right --- .changeset/config.json | 2 +- packages/contracts-ts/.gitignore | 7 + packages/contracts-ts/LICENSE | 21 + packages/contracts-ts/README.md | 60 + packages/contracts-ts/addresses.json | 78 + packages/contracts-ts/package.json | 74 + packages/contracts-ts/src/actions.ts | 7946 +++++++++ packages/contracts-ts/src/constants.ts | 5132 ++++++ packages/contracts-ts/src/index.ts | 4 + packages/contracts-ts/src/react.ts | 20226 +++++++++++++++++++++++ packages/contracts-ts/tsconfig.json | 11 + packages/contracts-ts/tsup.config.ts | 11 + packages/contracts-ts/wagmi.config.ts | 313 + pnpm-lock.yaml | 3004 +++- 14 files changed, 36667 insertions(+), 222 deletions(-) create mode 100644 packages/contracts-ts/.gitignore create mode 100644 packages/contracts-ts/LICENSE create mode 100644 packages/contracts-ts/README.md create mode 100644 packages/contracts-ts/addresses.json create mode 100644 packages/contracts-ts/package.json create mode 100644 packages/contracts-ts/src/actions.ts create mode 100644 packages/contracts-ts/src/constants.ts create mode 100644 packages/contracts-ts/src/index.ts create mode 100644 packages/contracts-ts/src/react.ts create mode 100644 packages/contracts-ts/tsconfig.json create mode 100644 packages/contracts-ts/tsup.config.ts create mode 100644 packages/contracts-ts/wagmi.config.ts diff --git a/.changeset/config.json b/.changeset/config.json index b3008c6a2fc01..e9e37795435f4 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -2,7 +2,7 @@ "$schema": "https://unpkg.com/@changesets/config@1.6.0/schema.json", "changelog": "@changesets/cli/changelog", "commit": false, - "linked": [], + "linked": [["contracts-bedrock", "contracts-ts"]], "access": "public", "baseBranch": "master", "updateInternalDependencies": "patch", diff --git a/packages/contracts-ts/.gitignore b/packages/contracts-ts/.gitignore new file mode 100644 index 0000000000000..ea808af54514a --- /dev/null +++ b/packages/contracts-ts/.gitignore @@ -0,0 +1,7 @@ +artifacts +cache +typechain +.deps +.envrc +.env +/dist/ diff --git a/packages/contracts-ts/LICENSE b/packages/contracts-ts/LICENSE new file mode 100644 index 0000000000000..86541fdc788ee --- /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 0000000000000..aabdc704389b7 --- /dev/null +++ b/packages/contracts-ts/README.md @@ -0,0 +1,60 @@ +## 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. + +#### @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/addresses.json b/packages/contracts-ts/addresses.json new file mode 100644 index 0000000000000..08527d1fff24d --- /dev/null +++ b/packages/contracts-ts/addresses.json @@ -0,0 +1,78 @@ +{ + "AddressManager": { + "1": "0xdE1FCfB0851916CA5101820A69b13a4E276bd81F", + "5": "0xa6f73589243a6A7a9023b1Fa0651b1d89c177111" + }, + "L1CrossDomainMessenger": { + "1": "0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1", + "5": "0x5086d1eEF304eb5284A0f6720f79403b4e9bE294" + }, + "L1ERC721Bridge": { + "1": "0x5a7749f83b81B301cAb5f48EB8516B986DAef23D", + "5": "0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9" + }, + "L1StandardBridge": { + "1": "0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1", + "5": "0x636Af16bf2f682dD3109e60102b8E1A089FedAa8" + }, + "L2OutputOracle": { + "1": "0xdfe97868233d1aa22e815a266982f2cf17685a27", + "5": "0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0" + }, + "OptimismMintableERC20Factory": { + "1": "0x4200000000000000000000000000000000000012", + "5": "0x4200000000000000000000000000000000000012", + "420": "0x4200000000000000000000000000000000000012" + }, + "OptimismPortal": { + "1": "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed", + "5": "0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383" + }, + "PortalSender": { + "1": "0x0A893d9576b9cFD9EF78595963dc973238E78210", + "5": "0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4" + }, + "ProxyAdmin": { + "1": "0x4200000000000000000000000000000000000018", + "5": "0x4200000000000000000000000000000000000018" + }, + "SystemConfig": { + "1": "0x229047fed2591dbec1eF1118d64F7aF3dB9EB290", + "5": "0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60" + }, + "SystemDictator": "0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB", + "SystemDictator_goerli": "0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971", + "MintManager": { + "10": "0x5C4e7Ba1E219E47948e6e3F55019A647bA501005", + "420": "0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76" + }, + "OptimismMintableERC721Factory": "0x4200000000000000000000000000000000000017", + "OptimismMintableERC721Factory_optimism-goerli": "0x4200000000000000000000000000000000000017", + "BaseFeeVault": { + "420": "0x4200000000000000000000000000000000000019" + }, + "GasPriceOracle": { + "420": "0x420000000000000000000000000000000000000F" + }, + "L1Block": { + "420": "0x4200000000000000000000000000000000000015" + }, + "L1FeeVault": { + "420": "0x420000000000000000000000000000000000001a" + }, + "L2CrossDomainMessenger": { + "420": "0x4200000000000000000000000000000000000007" + }, + "L2ERC721Bridge": { + "420": "0x4200000000000000000000000000000000000014" + }, + "L2StandardBridge": { + "420": "0x4200000000000000000000000000000000000010" + }, + "L2ToL1MessagePasser": { + "420": "0x4200000000000000000000000000000000000016" + }, + "SequencerFeeVault": { + "420": "0x4200000000000000000000000000000000000011" + } +} \ No newline at end of file diff --git a/packages/contracts-ts/package.json b/packages/contracts-ts/package.json new file mode 100644 index 0000000000000..db9def5ab4879 --- /dev/null +++ b/packages/contracts-ts/package.json @@ -0,0 +1,74 @@ +{ + "name": "@eth-optimism/contracts-ts", + "version": "0.15.0", + "description": "TypeScript interface for Contracts Bedrock", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/ethereum-optimism/optimism.git", + "directory": "packages/contracts-ts" + }, + "homepage": "https://optimism.io", + "type": "module", + "main": "dist/index.js", + "module": "dist/index.mjs", + "types": "src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" + }, + "./actions": { + "types": "./src/actions.ts", + "import": "./dist/actions.js", + "require": "./dist/actions.cjs" + }, + "./react": { + "types": "./src/react.ts", + "import": "./dist/react.js", + "require": "./dist/react.cjs" + } + }, + "files": [ + "dist/", + "src/" + ], + "scripts": { + "build": "tsup", + "generate": "wagmi generate", + "test": "NODE_OPTIONS=--experimental-fetch vitest" + }, + "devDependencies": { + "@eth-optimism/contracts-bedrock": "workspace:0.15.0", + "@types/glob": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^5.60.1", + "@typescript-eslint/parser": "^5.60.1", + "@wagmi/cli": "^1.3.0", + "abitype": "^0.9.0", + "ds-test": "github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084", + "forge-std": "github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e", + "glob": "^7.2.3", + "solhint": "^3.4.1", + "solhint-plugin-prettier": "^0.0.5", + "ts-node": "^10.9.1", + "tsup": "^7.1.0", + "typescript": "^4.9.3" + }, + "peerDependencies": { + "@wagmi/core": ">1.0.0", + "wagmi": ">1.0.0" + }, + "peerDependenciesMeta": { + "wagmi": { + "optional": true + }, + "@wagmi/core": { + "optional": true + } + }, + "dependencies": { + "viem": "^0.3.30", + "vitest": "^0.28.3" + } +} diff --git a/packages/contracts-ts/src/actions.ts b/packages/contracts-ts/src/actions.ts new file mode 100644 index 0000000000000..c428fde25bab6 --- /dev/null +++ b/packages/contracts-ts/src/actions.ts @@ -0,0 +1,7946 @@ +// Generated by @wagmi/cli@1.3.0 on 7/12/2023 at 12:52:07 AM +import { + getContract, + GetContractArgs, + readContract, + ReadContractConfig, + writeContract, + WriteContractMode, + WriteContractArgs, + WriteContractPreparedArgs, + WriteContractUnpreparedArgs, + prepareWriteContract, + PrepareWriteContractConfig, + watchContractEvent, + WatchContractEventConfig, + WatchContractEventCallback, +} from 'wagmi/actions' + +/* eslint-disable */ + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AddressManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: '_name', internalType: 'string', type: 'string', indexed: true }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerAddress = { + 1: '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + 5: '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerConfig = { + address: addressManagerAddress, + abi: addressManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address payable', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2OutputOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC20Created', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Paused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'TransactionDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'WithdrawalProven', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'finalizeWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'proveWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PortalSender +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProxyAdmin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemConfig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'setResourceConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + ], + name: 'setUnsafeBlockSigner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const systemDictatorAddress = + '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB' as const + +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const systemDictatorGoerliAddress = + '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971' as const + +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const optimismMintableErc721FactoryAddress = + '0x4200000000000000000000000000000000000017' as const + +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const optimismMintableErc721FactoryOptimismGoerliAddress = + '0x4200000000000000000000000000000000000017' as const + +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Core +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function getAddressManager( + config: Omit & { + chainId?: keyof typeof addressManagerAddress + } +) { + return getContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function readAddressManager< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof addressManagerAddress + } +) { + return readContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function writeAddressManager< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof addressManagerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof addressManagerAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof addressManagerAddress + }) +) { + return writeContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function prepareWriteAddressManager< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } +) { + return prepareWriteContract({ + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function watchAddressManagerEvent< + TAbi extends readonly unknown[] = typeof addressManagerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: addressManagerABI, + address: + addressManagerAddress[ + config.chainId as keyof typeof addressManagerAddress + ], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function getL1CrossDomainMessenger( + config: Omit & { + chainId?: keyof typeof l1CrossDomainMessengerAddress + } +) { + return getContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function readL1CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l1CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l1CrossDomainMessengerAddress + } +) { + return readContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function writeL1CrossDomainMessenger< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l1CrossDomainMessengerAddress +>( + config: + | (Omit< + WriteContractPreparedArgs< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1CrossDomainMessengerAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof l1CrossDomainMessengerABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l1CrossDomainMessengerAddress + }) +) { + return writeContract({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + config.chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as unknown as WriteContractArgs< + typeof l1CrossDomainMessengerABI, + TFunctionName + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >) +} + +/** + * 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}__. + */ +export function getSystemDictator( + config: Omit +) { + return getContract({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorABI}__. + */ +export function readSystemDictator< + TAbi extends readonly unknown[] = typeof systemDictatorABI, + TFunctionName extends string = string +>(config: Omit, 'abi' | 'address'>) { + return readContract({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorABI}__. + */ +export function writeSystemDictator( + config: + | Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > + | Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > +) { + return writeContract({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorABI}__. + */ +export function prepareWriteSystemDictator< + TAbi extends readonly unknown[] = typeof systemDictatorABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > +) { + return prepareWriteContract({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. + */ +export function watchSystemDictatorEvent< + TAbi extends readonly unknown[] = typeof systemDictatorABI, + TEventName extends string = string +>( + config: Omit, 'abi' | 'address'>, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function getSystemDictatorGoerli( + config: Omit +) { + return getContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function readSystemDictatorGoerli< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, + TFunctionName extends string = string +>(config: Omit, 'abi' | 'address'>) { + return readContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function writeSystemDictatorGoerli( + config: + | Omit< + WriteContractPreparedArgs< + typeof systemDictatorGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > + | Omit< + WriteContractUnpreparedArgs< + typeof systemDictatorGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > +) { + return writeContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + } as unknown as WriteContractArgs< + typeof systemDictatorGoerliABI, + TFunctionName + >) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function prepareWriteSystemDictatorGoerli< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > +) { + return prepareWriteContract({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function watchSystemDictatorGoerliEvent< + TAbi extends readonly unknown[] = typeof systemDictatorGoerliABI, + TEventName extends string = string +>( + config: Omit, 'abi' | 'address'>, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...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}__. + */ +export function getOptimismMintableErc721Factory( + config: Omit +) { + return getContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + */ +export function readOptimismMintableErc721Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, + TFunctionName extends string = string +>(config: Omit, 'abi' | 'address'>) { + return readContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + */ +export function writeOptimismMintableErc721Factory< + TFunctionName extends string +>( + config: + | Omit< + WriteContractPreparedArgs< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > + | Omit< + WriteContractUnpreparedArgs< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > +) { + return writeContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as unknown as WriteContractArgs< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + */ +export function prepareWriteOptimismMintableErc721Factory< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > +) { + return prepareWriteContract({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + */ +export function watchOptimismMintableErc721FactoryEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryABI, + TEventName extends string = string +>( + config: Omit, 'abi' | 'address'>, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function getOptimismMintableErc721FactoryOptimismGoerli( + config: Omit +) { + return getContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function readOptimismMintableErc721FactoryOptimismGoerli< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName extends string = string +>(config: Omit, 'abi' | 'address'>) { + return readContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function writeOptimismMintableErc721FactoryOptimismGoerli< + TFunctionName extends string +>( + config: + | Omit< + WriteContractPreparedArgs< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > + | Omit< + WriteContractUnpreparedArgs< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > +) { + return writeContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + } as unknown as WriteContractArgs< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function prepareWriteOptimismMintableErc721FactoryOptimismGoerli< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > +) { + return prepareWriteContract({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function watchOptimismMintableErc721FactoryOptimismGoerliEvent< + TAbi extends readonly unknown[] = typeof optimismMintableErc721FactoryOptimismGoerliABI, + TEventName extends string = string +>( + config: Omit, 'abi' | 'address'>, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...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< + typeof l2CrossDomainMessengerABI, + TFunctionName + >) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function prepareWriteL2CrossDomainMessenger< + TAbi extends readonly unknown[] = typeof l2CrossDomainMessengerABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress } +) { + return prepareWriteContract({ + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2CrossDomainMessengerABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export function watchL2CrossDomainMessengerEvent< + TAbi extends readonly unknown[] = typeof l2CrossDomainMessengerABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2CrossDomainMessengerAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2CrossDomainMessengerABI, + address: l2CrossDomainMessengerAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function getL2Erc721Bridge( + config: Omit & { + chainId?: keyof typeof l2Erc721BridgeAddress + } +) { + return getContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function readL2Erc721Bridge< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2Erc721BridgeAddress + } +) { + return readContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function writeL2Erc721Bridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2Erc721BridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2Erc721BridgeAddress + }) +) { + return writeContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function prepareWriteL2Erc721Bridge< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } +) { + return prepareWriteContract({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function watchL2Erc721BridgeEvent< + TAbi extends readonly unknown[] = typeof l2Erc721BridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function getL2StandardBridge( + config: Omit & { + chainId?: keyof typeof l2StandardBridgeAddress + } +) { + return getContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function readL2StandardBridge< + TAbi extends readonly unknown[] = typeof l2StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2StandardBridgeAddress + } +) { + return readContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function writeL2StandardBridge< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2StandardBridgeAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2StandardBridgeAddress + }) + | (Omit< + WriteContractUnpreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2StandardBridgeAddress + }) +) { + return writeContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as unknown as WriteContractArgs) +} + +/** + * Wraps __{@link prepareWriteContract}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function prepareWriteL2StandardBridge< + TAbi extends readonly unknown[] = typeof l2StandardBridgeABI, + TFunctionName extends string = string +>( + config: Omit< + PrepareWriteContractConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2StandardBridgeAddress } +) { + return prepareWriteContract({ + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as unknown as PrepareWriteContractConfig) +} + +/** + * Wraps __{@link watchContractEvent}__ with `abi` set to __{@link l2StandardBridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export function watchL2StandardBridgeEvent< + TAbi extends readonly unknown[] = typeof l2StandardBridgeABI, + TEventName extends string = string +>( + config: Omit< + WatchContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2StandardBridgeAddress }, + callback: WatchContractEventCallback +) { + return watchContractEvent( + { + abi: l2StandardBridgeABI, + address: l2StandardBridgeAddress[420], + ...config, + } as WatchContractEventConfig, + callback + ) +} + +/** + * Wraps __{@link getContract}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function getL2ToL1MessagePasser( + config: Omit & { + chainId?: keyof typeof l2ToL1MessagePasserAddress + } +) { + return getContract({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + }) +} + +/** + * Wraps __{@link readContract}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function readL2ToL1MessagePasser< + TAbi extends readonly unknown[] = typeof l2ToL1MessagePasserABI, + TFunctionName extends string = string +>( + config: Omit, 'abi' | 'address'> & { + chainId?: keyof typeof l2ToL1MessagePasserAddress + } +) { + return readContract({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as unknown as ReadContractConfig) +} + +/** + * Wraps __{@link writeContract}__ with `abi` set to __{@link l2ToL1MessagePasserABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export function writeL2ToL1MessagePasser< + TFunctionName extends string, + TMode extends WriteContractMode, + TChainId extends number = keyof typeof l2ToL1MessagePasserAddress +>( + config: + | (Omit< + WriteContractPreparedArgs, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2ToL1MessagePasserAddress + }) + | (Omit< + WriteContractUnpreparedArgs< + typeof l2ToL1MessagePasserABI, + TFunctionName + >, + 'abi' | 'address' + > & { + mode: TMode + chainId?: TMode extends 'prepared' + ? TChainId + : keyof typeof l2ToL1MessagePasserAddress + }) +) { + return writeContract({ + abi: l2ToL1MessagePasserABI, + address: l2ToL1MessagePasserAddress[420], + ...config, + } as unknown as WriteContractArgs< + typeof l2ToL1MessagePasserABI, + TFunctionName + >) +} + +/** + * 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.ts b/packages/contracts-ts/src/constants.ts new file mode 100644 index 0000000000000..144f78d79f001 --- /dev/null +++ b/packages/contracts-ts/src/constants.ts @@ -0,0 +1,5132 @@ +// Generated by @wagmi/cli@1.3.0 on 7/12/2023 at 12:52:06 AM + +/* eslint-disable */ + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AddressManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: '_name', internalType: 'string', type: 'string', indexed: true }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerAddress = { + 1: '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + 5: '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerConfig = { + address: addressManagerAddress, + abi: addressManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address payable', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2OutputOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC20Created', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Paused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'TransactionDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'WithdrawalProven', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'finalizeWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'proveWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PortalSender +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProxyAdmin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemConfig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'setResourceConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + ], + name: 'setUnsafeBlockSigner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const systemDictatorAddress = + '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB' as const + +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const systemDictatorGoerliAddress = + '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971' as const + +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const optimismMintableErc721FactoryAddress = + '0x4200000000000000000000000000000000000017' as const + +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const optimismMintableErc721FactoryOptimismGoerliAddress = + '0x4200000000000000000000000000000000000017' as const + +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// addressesByContractByNetwork +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const addresses = { + AddressManager: { + '1': '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + '5': '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', + }, + L1CrossDomainMessenger: { + '1': '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + '5': '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', + }, + L1ERC721Bridge: { + '1': '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + '5': '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', + }, + L1StandardBridge: { + '1': '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + '5': '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', + }, + L2OutputOracle: { + '1': '0xdfe97868233d1aa22e815a266982f2cf17685a27', + '5': '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', + }, + OptimismMintableERC20Factory: { + '1': '0x4200000000000000000000000000000000000012', + '5': '0x4200000000000000000000000000000000000012', + '420': '0x4200000000000000000000000000000000000012', + }, + OptimismPortal: { + '1': '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + '5': '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', + }, + PortalSender: { + '1': '0x0A893d9576b9cFD9EF78595963dc973238E78210', + '5': '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', + }, + ProxyAdmin: { + '1': '0x4200000000000000000000000000000000000018', + '5': '0x4200000000000000000000000000000000000018', + }, + SystemConfig: { + '1': '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + '5': '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', + }, + SystemDictator: '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB', + SystemDictator_goerli: '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971', + MintManager: { + '10': '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + '420': '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', + }, + OptimismMintableERC721Factory: '0x4200000000000000000000000000000000000017', + 'OptimismMintableERC721Factory_optimism-goerli': + '0x4200000000000000000000000000000000000017', + BaseFeeVault: { '420': '0x4200000000000000000000000000000000000019' }, + GasPriceOracle: { '420': '0x420000000000000000000000000000000000000F' }, + L1Block: { '420': '0x4200000000000000000000000000000000000015' }, + L1FeeVault: { '420': '0x420000000000000000000000000000000000001a' }, + L2CrossDomainMessenger: { + '420': '0x4200000000000000000000000000000000000007', + }, + L2ERC721Bridge: { '420': '0x4200000000000000000000000000000000000014' }, + L2StandardBridge: { '420': '0x4200000000000000000000000000000000000010' }, + L2ToL1MessagePasser: { '420': '0x4200000000000000000000000000000000000016' }, + SequencerFeeVault: { '420': '0x4200000000000000000000000000000000000011' }, +} as const diff --git a/packages/contracts-ts/src/index.ts b/packages/contracts-ts/src/index.ts new file mode 100644 index 0000000000000..173f6cfe8c463 --- /dev/null +++ b/packages/contracts-ts/src/index.ts @@ -0,0 +1,4 @@ +export * from './constants' + +export * from './estimateGas' + diff --git a/packages/contracts-ts/src/react.ts b/packages/contracts-ts/src/react.ts new file mode 100644 index 0000000000000..290464a93655f --- /dev/null +++ b/packages/contracts-ts/src/react.ts @@ -0,0 +1,20226 @@ +// Generated by @wagmi/cli@1.3.0 on 7/12/2023 at 12:52:07 AM +import { + useNetwork, + useContractRead, + UseContractReadConfig, + useContractWrite, + Address, + UseContractWriteConfig, + usePrepareContractWrite, + UsePrepareContractWriteConfig, + useContractEvent, + UseContractEventConfig, +} from 'wagmi' +import { + ReadContractResult, + WriteContractMode, + PrepareWriteContractResult, +} from 'wagmi/actions' + +/* eslint-disable */ + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AddressManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: '_name', internalType: 'string', type: 'string', indexed: true }, + { + name: '_newAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: '_oldAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AddressSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_name', internalType: 'string', type: 'string' }], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerAddress = { + 1: '0xdE1FCfB0851916CA5101820A69b13a4E276bd81F', + 5: '0xa6f73589243a6A7a9023b1Fa0651b1d89c177111', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export const addressManagerConfig = { + address: addressManagerAddress, + abi: addressManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerAddress = { + 1: '0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1', + 5: '0x5086d1eEF304eb5284A0f6720f79403b4e9bE294', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export const l1CrossDomainMessengerConfig = { + address: l1CrossDomainMessengerAddress, + abi: l1CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeAddress = { + 1: '0x5a7749f83b81B301cAb5f48EB8516B986DAef23D', + 5: '0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x5a7749f83b81B301cAb5f48EB8516B986DAef23D) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9) + */ +export const l1Erc721BridgeConfig = { + address: l1Erc721BridgeAddress, + abi: l1Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address payable', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20DepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHDepositInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHWithdrawalFinalized', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeERC20Withdrawal', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeETHWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeAddress = { + 1: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1', + 5: '0x636Af16bf2f682dD3109e60102b8E1A089FedAa8', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x636Af16bf2f682dD3109e60102b8E1A089FedAa8) + */ +export const l1StandardBridgeConfig = { + address: l1StandardBridgeAddress, + abi: l1StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2OutputOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_submissionInterval', internalType: 'uint256', type: 'uint256' }, + { name: '_l2BlockTime', internalType: 'uint256', type: 'uint256' }, + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + { name: '_proposer', internalType: 'address', type: 'address' }, + { name: '_challenger', internalType: 'address', type: 'address' }, + { + name: '_finalizationPeriodSeconds', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'outputRoot', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'l2OutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l2BlockNumber', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'l1Timestamp', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'OutputProposed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'prevNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'newNextOutputIndex', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'OutputsDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'CHALLENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'FINALIZATION_PERIOD_SECONDS', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_BLOCK_TIME', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PROPOSER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SUBMISSION_INTERVAL', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'computeL2Timestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'deleteL2Outputs', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2Output', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputAfter', + outputs: [ + { + name: '', + internalType: 'struct Types.OutputProposal', + type: 'tuple', + components: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2BlockNumber', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getL2OutputIndexAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_startingBlockNumber', + internalType: 'uint256', + type: 'uint256', + }, + { name: '_startingTimestamp', internalType: 'uint256', type: 'uint256' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'nextOutputIndex', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l2BlockNumber', internalType: 'uint256', type: 'uint256' }, + { name: '_l1BlockHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1BlockNumber', internalType: 'uint256', type: 'uint256' }, + ], + name: 'proposeL2Output', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingBlockNumber', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'startingTimestamp', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleAddress = { + 1: '0xdfe97868233d1aa22e815a266982f2cf17685a27', + 5: '0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdfe97868233d1aa22e815a266982f2cf17685a27) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0) + */ +export const l2OutputOracleConfig = { + address: l2OutputOracleAddress, + abi: l2OutputOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC20Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_bridge', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'deployer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'OptimismMintableERC20Created', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'StandardL2TokenCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'BRIDGE', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createOptimismMintableERC20', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_symbol', internalType: 'string', type: 'string' }, + ], + name: 'createStandardL2Token', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryAddress = { + 1: '0x4200000000000000000000000000000000000012', + 5: '0x4200000000000000000000000000000000000012', + 420: '0x4200000000000000000000000000000000000012', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000012) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000012) + */ +export const optimismMintableErc20FactoryConfig = { + address: optimismMintableErc20FactoryAddress, + abi: optimismMintableErc20FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismPortal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l2Oracle', + internalType: 'contract L2OutputOracle', + type: 'address', + }, + { name: '_guardian', internalType: 'address', type: 'address' }, + { name: '_paused', internalType: 'bool', type: 'bool' }, + { + name: '_config', + internalType: 'contract SystemConfig', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Paused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'opaqueData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'TransactionDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'account', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Unpaused', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'success', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'WithdrawalFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'WithdrawalProven', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'GUARDIAN', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'L2_ORACLE', + outputs: [ + { name: '', internalType: 'contract L2OutputOracle', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SYSTEM_CONFIG', + outputs: [ + { name: '', internalType: 'contract SystemConfig', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_isCreation', internalType: 'bool', type: 'bool' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'depositTransaction', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [], + name: 'donateETH', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'finalizeWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'finalizedWithdrawals', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_paused', internalType: 'bool', type: 'bool' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + ], + name: 'isOutputFinalized', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l2Sender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '_byteCount', internalType: 'uint64', type: 'uint64' }], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'params', + outputs: [ + { name: 'prevBaseFee', internalType: 'uint128', type: 'uint128' }, + { name: 'prevBoughtGas', internalType: 'uint64', type: 'uint64' }, + { name: 'prevBlockNum', internalType: 'uint64', type: 'uint64' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'pause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'paused', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_tx', + internalType: 'struct Types.WithdrawalTransaction', + type: 'tuple', + components: [ + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'sender', internalType: 'address', type: 'address' }, + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_l2OutputIndex', internalType: 'uint256', type: 'uint256' }, + { + name: '_outputRootProof', + internalType: 'struct Types.OutputRootProof', + type: 'tuple', + components: [ + { name: 'version', internalType: 'bytes32', type: 'bytes32' }, + { name: 'stateRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'messagePasserStorageRoot', + internalType: 'bytes32', + type: 'bytes32', + }, + { name: 'latestBlockhash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: '_withdrawalProof', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'proveWithdrawalTransaction', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'provenWithdrawals', + outputs: [ + { name: 'outputRoot', internalType: 'bytes32', type: 'bytes32' }, + { name: 'timestamp', internalType: 'uint128', type: 'uint128' }, + { name: 'l2OutputIndex', internalType: 'uint128', type: 'uint128' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'unpause', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalAddress = { + 1: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', + 5: '0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xbEb5Fc579115071764c7423A4f12eDde41f106Ed) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383) + */ +export const optimismPortalConfig = { + address: optimismPortalAddress, + abi: optimismPortalABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PortalSender +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_portal', + internalType: 'contract OptimismPortal', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'PORTAL', + outputs: [ + { name: '', internalType: 'contract OptimismPortal', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'donate', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderAddress = { + 1: '0x0A893d9576b9cFD9EF78595963dc973238E78210', + 5: '0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x0A893d9576b9cFD9EF78595963dc973238E78210) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xe7FACd39531ee3C313330E93B4d7a8B8A3c84Aa4) + */ +export const portalSenderConfig = { + address: portalSenderAddress, + abi: portalSenderABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProxyAdmin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_owner', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'addressManager', + outputs: [ + { name: '', internalType: 'contract AddressManager', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_newAdmin', internalType: 'address', type: 'address' }, + ], + name: 'changeProxyAdmin', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + ], + name: 'getProxyAdmin', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proxy', internalType: 'address', type: 'address' }], + name: 'getProxyImplementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'implementationName', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'isUpgrading', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'proxyType', + outputs: [ + { name: '', internalType: 'enum ProxyAdmin.ProxyType', type: 'uint8' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_name', internalType: 'string', type: 'string' }, + { name: '_address', internalType: 'address', type: 'address' }, + ], + name: 'setAddress', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_address', + internalType: 'contract AddressManager', + type: 'address', + }, + ], + name: 'setAddressManager', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setImplementationName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_address', internalType: 'address', type: 'address' }, + { + name: '_type', + internalType: 'enum ProxyAdmin.ProxyType', + type: 'uint8', + }, + ], + name: 'setProxyType', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_upgrading', internalType: 'bool', type: 'bool' }], + name: 'setUpgrading', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_proxy', internalType: 'address payable', type: 'address' }, + { name: '_implementation', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeAndCall', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminAddress = { + 1: '0x4200000000000000000000000000000000000018', + 5: '0x4200000000000000000000000000000000000018', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x4200000000000000000000000000000000000018) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x4200000000000000000000000000000000000018) + */ +export const proxyAdminConfig = { + address: proxyAdminAddress, + abi: proxyAdminABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemConfig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'version', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'updateType', + internalType: 'enum SystemConfig.UpdateType', + type: 'uint8', + indexed: true, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ConfigUpdate', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UNSAFE_BLOCK_SIGNER_SLOT', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_owner', internalType: 'address', type: 'address' }, + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_gasLimit', internalType: 'uint64', type: 'uint64' }, + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minimumGasLimit', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resourceConfig', + outputs: [ + { + name: '', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setBatcherHash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_overhead', internalType: 'uint256', type: 'uint256' }, + { name: '_scalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setGasConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_gasLimit', internalType: 'uint64', type: 'uint64' }], + name: 'setGasLimit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_config', + internalType: 'struct ResourceMetering.ResourceConfig', + type: 'tuple', + components: [ + { name: 'maxResourceLimit', internalType: 'uint32', type: 'uint32' }, + { + name: 'elasticityMultiplier', + internalType: 'uint8', + type: 'uint8', + }, + { + name: 'baseFeeMaxChangeDenominator', + internalType: 'uint8', + type: 'uint8', + }, + { name: 'minimumBaseFee', internalType: 'uint32', type: 'uint32' }, + { name: 'systemTxMaxGas', internalType: 'uint32', type: 'uint32' }, + { name: 'maximumBaseFee', internalType: 'uint128', type: 'uint128' }, + ], + }, + ], + name: 'setResourceConfig', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_unsafeBlockSigner', internalType: 'address', type: 'address' }, + ], + name: 'setUnsafeBlockSigner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'unsafeBlockSigner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigAddress = { + 1: '0x229047fed2591dbec1eF1118d64F7aF3dB9EB290', + 5: '0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60', +} as const + +/** + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x229047fed2591dbec1eF1118d64F7aF3dB9EB290) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60) + */ +export const systemConfigConfig = { + address: systemConfigAddress, + abi: systemConfigABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const systemDictatorAddress = + '0xB4453CEb33d2e67FA244A24acf2E50CEF31F53cB' as const + +export const systemDictatorConfig = { + address: systemDictatorAddress, + abi: systemDictatorABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SystemDictator_goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const systemDictatorGoerliAddress = + '0x1f0613A44c9a8ECE7B3A2e0CdBdF0F5B47A50971' as const + +export const systemDictatorGoerliConfig = { + address: systemDictatorGoerliAddress, + abi: systemDictatorGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MintManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_upgrader', internalType: 'address', type: 'address' }, + { name: '_governanceToken', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DENOMINATOR', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_CAP', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MINT_PERIOD', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'governanceToken', + outputs: [ + { name: '', internalType: 'contract GovernanceToken', type: 'address' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'mintPermittedAfter', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'renounceOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_newMintManager', internalType: 'address', type: 'address' }, + ], + name: 'upgrade', + outputs: [], + }, +] as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerAddress = { + 10: '0x5C4e7Ba1E219E47948e6e3F55019A647bA501005', + 420: '0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76', +} as const + +/** + * - [__View Contract on Optimism Optimism Explorer__](https://explorer.optimism.io/address/0x5C4e7Ba1E219E47948e6e3F55019A647bA501005) + * - [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x038a8825A3C3B0c08d52Cc76E5E361953Cf6Dc76) + */ +export const mintManagerConfig = { + address: mintManagerAddress, + abi: mintManagerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const optimismMintableErc721FactoryAddress = + '0x4200000000000000000000000000000000000017' as const + +export const optimismMintableErc721FactoryConfig = { + address: optimismMintableErc721FactoryAddress, + abi: optimismMintableErc721FactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// OptimismMintableERC721Factory_optimism-goerli +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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 + +export const optimismMintableErc721FactoryOptimismGoerliAddress = + '0x4200000000000000000000000000000000000017' as const + +export const optimismMintableErc721FactoryOptimismGoerliConfig = { + address: optimismMintableErc721FactoryOptimismGoerliAddress, + abi: optimismMintableErc721FactoryOptimismGoerliABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BaseFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000019', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000019) + */ +export const baseFeeVaultConfig = { + address: baseFeeVaultAddress, + abi: baseFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GasPriceOracle +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'baseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'gasPrice', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1Fee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_data', internalType: 'bytes', type: 'bytes' }], + name: 'getL1GasUsed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1BaseFee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'overhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'scalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleAddress = { + 420: '0x420000000000000000000000000000000000000F', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000000F) + */ +export const gasPriceOracleConfig = { + address: gasPriceOracleAddress, + abi: gasPriceOracleABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1Block +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DEPOSITOR_ACCOUNT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'basefee', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'batcherHash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'hash', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeOverhead', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeScalar', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'number', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'sequenceNumber', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_number', internalType: 'uint64', type: 'uint64' }, + { name: '_timestamp', internalType: 'uint64', type: 'uint64' }, + { name: '_basefee', internalType: 'uint256', type: 'uint256' }, + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_sequenceNumber', internalType: 'uint64', type: 'uint64' }, + { name: '_batcherHash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_l1FeeOverhead', internalType: 'uint256', type: 'uint256' }, + { name: '_l1FeeScalar', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setL1BlockValues', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'timestamp', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockAddress = { + 420: '0x4200000000000000000000000000000000000015', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000015) + */ +export const l1BlockConfig = { + address: l1BlockAddress, + abi: l1BlockABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L1FeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultAddress = { + 420: '0x420000000000000000000000000000000000001A', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x420000000000000000000000000000000000001a) + */ +export const l1FeeVaultConfig = { + address: l1FeeVaultAddress, + abi: l1FeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2CrossDomainMessenger +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_l1CrossDomainMessenger', + internalType: 'address', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'FailedRelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'msgHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + ], + name: 'RelayedMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { name: 'message', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'messageNonce', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessage', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'SentMessageExtension1', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_CALLDATA_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'OTHER_MESSENGER', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CALL_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_CONSTANT_OVERHEAD', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_GAS_CHECK_BUFFER', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RELAY_RESERVED_GAS', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'baseGas', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'failedMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1CrossDomainMessenger', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_nonce', internalType: 'uint256', type: 'uint256' }, + { name: '_sender', internalType: 'address', type: 'address' }, + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_value', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + ], + name: 'relayMessage', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_message', internalType: 'bytes', type: 'bytes' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + ], + name: 'sendMessage', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'successfulMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'xDomainMessageSender', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerAddress = { + 420: '0x4200000000000000000000000000000000000007', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000007) + */ +export const l2CrossDomainMessengerConfig = { + address: l2CrossDomainMessengerAddress, + abi: l2CrossDomainMessengerABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ERC721Bridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_messenger', internalType: 'address', type: 'address' }, + { name: '_otherBridge', internalType: 'address', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'tokenId', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC721BridgeInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC721To', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_tokenId', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC721', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'otherBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeAddress = { + 420: '0x4200000000000000000000000000000000000014', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export const l2Erc721BridgeConfig = { + address: l2Erc721BridgeAddress, + abi: l2Erc721BridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2StandardBridge +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_otherBridge', + internalType: 'address payable', + type: 'address', + }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'DepositFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'localToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'remoteToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ERC20BridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeFinalized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ETHBridgeInitiated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'l1Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'l2Token', + internalType: 'address', + type: 'address', + indexed: true, + }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'extraData', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'WithdrawalInitiated', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeERC20To', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'bridgeETHTo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + ], + name: 'deposits', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_localToken', internalType: 'address', type: 'address' }, + { name: '_remoteToken', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeERC20', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeBridgeETH', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l1Token', internalType: 'address', type: 'address' }, + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_from', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'finalizeDeposit', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1TokenBridge', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messenger', + outputs: [ + { + name: '', + internalType: 'contract CrossDomainMessenger', + type: 'address', + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdraw', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_l2Token', internalType: 'address', type: 'address' }, + { name: '_to', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_minGasLimit', internalType: 'uint32', type: 'uint32' }, + { name: '_extraData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'withdrawTo', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeAddress = { + 420: '0x4200000000000000000000000000000000000010', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000010) + */ +export const l2StandardBridgeConfig = { + address: l2StandardBridgeAddress, + abi: l2StandardBridgeABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// L2ToL1MessagePasser +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'nonce', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'target', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'gasLimit', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'withdrawalHash', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'MessagePassed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'WithdrawerBalanceBurnt', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MESSAGE_VERSION', + outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'burn', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_target', internalType: 'address', type: 'address' }, + { name: '_gasLimit', internalType: 'uint256', type: 'uint256' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initiateWithdrawal', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'messageNonce', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'sentMessages', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserAddress = { + 420: '0x4200000000000000000000000000000000000016', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000016) + */ +export const l2ToL1MessagePasserConfig = { + address: l2ToL1MessagePasserAddress, + abi: l2ToL1MessagePasserABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// SequencerFeeVault +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_recipient', internalType: 'address', type: 'address' }], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'value', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { name: 'to', internalType: 'address', type: 'address', indexed: false }, + { + name: 'from', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Withdrawal', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MIN_WITHDRAWAL_AMOUNT', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'RECIPIENT', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'l1FeeWallet', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalProcessed', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'version', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'withdraw', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultAddress = { + 420: '0x4200000000000000000000000000000000000011', +} as const + +/** + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000011) + */ +export const sequencerFeeVaultConfig = { + address: sequencerFeeVaultAddress, + abi: sequencerFeeVaultABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// eslintIgnore +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// React +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UseContractReadConfig< + typeof addressManagerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof addressManagerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof addressManagerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof addressManagerABI, + 'renounceOwnership' + >) +} + +/** + * 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< + typeof addressManagerABI, + 'transferOwnership' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"AddressSet"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerAddressSetEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + eventName: 'AddressSet', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link addressManagerABI}__ and `eventName` set to `"OwnershipTransferred"`. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0xdE1FCfB0851916CA5101820A69b13a4E276bd81F) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0xa6f73589243a6A7a9023b1Fa0651b1d89c177111) + */ +export function useAddressManagerOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof addressManagerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractEvent({ + abi: addressManagerABI, + address: + addressManagerAddress[chainId as keyof typeof addressManagerAddress], + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l1CrossDomainMessengerABI}__. + * + * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1) + * - [__View Contract on Goerli Etherscan__](https://goerli.etherscan.io/address/0x5086d1eEF304eb5284A0f6720f79403b4e9bE294) + */ +export function useL1CrossDomainMessengerRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof l1CrossDomainMessengerABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > & { chainId?: keyof typeof l1CrossDomainMessengerAddress } = {} as any +) { + const { chain } = useNetwork() + const chainId = config.chainId ?? chain?.id + return useContractRead({ + abi: l1CrossDomainMessengerABI, + address: + l1CrossDomainMessengerAddress[ + chainId as keyof typeof l1CrossDomainMessengerAddress + ], + ...config, + } as UseContractReadConfig< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + TFunctionName + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + 'initialize' + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + 'relayMessage' + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + 'sendMessage' + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + 'FailedRelayedMessage' + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + 'RelayedMessage' + >) +} + +/** + * 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< + typeof l1CrossDomainMessengerABI, + 'SentMessageExtension1' + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + 'bridgeERC721To' + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + 'finalizeBridgeERC721' + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + 'ERC721BridgeFinalized' + >) +} + +/** + * 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< + typeof l1Erc721BridgeABI, + 'ERC721BridgeInitiated' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'bridgeERC20To' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'depositERC20' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'depositERC20To' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'depositETHTo' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'finalizeBridgeERC20' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'finalizeBridgeETH' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'finalizeERC20Withdrawal' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'finalizeETHWithdrawal' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'ERC20BridgeFinalized' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'ERC20BridgeInitiated' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'ERC20DepositInitiated' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'ERC20WithdrawalFinalized' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'ETHDepositInitiated' + >) +} + +/** + * 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< + typeof l1StandardBridgeABI, + 'ETHWithdrawalFinalized' + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + 'deleteL2Outputs' + >) +} + +/** + * 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< + typeof l2OutputOracleABI, + 'proposeL2Output' + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + TFunctionName + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + 'createOptimismMintableERC20' + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + 'createStandardL2Token' + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + TEventName + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + 'OptimismMintableERC20Created' + >) +} + +/** + * 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< + typeof optimismMintableErc20FactoryABI, + 'StandardL2TokenCreated' + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof optimismPortalABI, + 'depositTransaction' + >) +} + +/** + * 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< + typeof optimismPortalABI, + 'finalizeWithdrawalTransaction' + >) +} + +/** + * 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< + typeof optimismPortalABI, + 'proveWithdrawalTransaction' + >) +} + +/** + * 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< + typeof portalSenderABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof portalSenderABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof proxyAdminABI, + 'setImplementationName' + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof systemConfigABI, + 'renounceOwnership' + >) +} + +/** + * 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< + typeof systemConfigABI, + 'setResourceConfig' + >) +} + +/** + * 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< + typeof systemConfigABI, + 'setUnsafeBlockSigner' + >) +} + +/** + * 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< + typeof systemConfigABI, + 'transferOwnership' + >) +} + +/** + * 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}__. + */ +export function useSystemDictatorRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. + */ +export function useSystemDictatorExit_1NoReturnStep< + TFunctionName extends 'EXIT_1_NO_RETURN_STEP', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'EXIT_1_NO_RETURN_STEP', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. + */ +export function useSystemDictatorProxyTransferStep< + TFunctionName extends 'PROXY_TRANSFER_STEP', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'PROXY_TRANSFER_STEP', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"config"`. + */ +export function useSystemDictatorConfig< + TFunctionName extends 'config', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'config', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"currentStep"`. + */ +export function useSystemDictatorCurrentStep< + TFunctionName extends 'currentStep', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'currentStep', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"dynamicConfigSet"`. + */ +export function useSystemDictatorDynamicConfigSet< + TFunctionName extends 'dynamicConfigSet', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'dynamicConfigSet', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exited"`. + */ +export function useSystemDictatorExited< + TFunctionName extends 'exited', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'exited', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalized"`. + */ +export function useSystemDictatorFinalized< + TFunctionName extends 'finalized', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'finalized', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. + */ +export function useSystemDictatorL2OutputOracleDynamicConfig< + TFunctionName extends 'l2OutputOracleDynamicConfig', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'l2OutputOracleDynamicConfig', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. + */ +export function useSystemDictatorOldL1CrossDomainMessenger< + TFunctionName extends 'oldL1CrossDomainMessenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'oldL1CrossDomainMessenger', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"optimismPortalDynamicConfig"`. + */ +export function useSystemDictatorOptimismPortalDynamicConfig< + TFunctionName extends 'optimismPortalDynamicConfig', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'optimismPortalDynamicConfig', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"owner"`. + */ +export function useSystemDictatorOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'owner', + ...config, + } as UseContractReadConfig< + typeof systemDictatorABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. + */ +export function useSystemDictatorWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + string + >['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. + */ +export function useSystemDictatorExit1< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'exit1' + >['request']['abi'], + 'exit1', + TMode + > & { functionName?: 'exit1' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'exit1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'exit1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. + */ +export function useSystemDictatorFinalize< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'finalize' + >['request']['abi'], + 'finalize', + TMode + > & { functionName?: 'finalize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'finalize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'finalize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. + */ +export function useSystemDictatorInitialize< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initialize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. + */ +export function useSystemDictatorPhase1< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'phase1' + >['request']['abi'], + 'phase1', + TMode + > & { functionName?: 'phase1' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'phase1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'phase1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. + */ +export function useSystemDictatorPhase2< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'phase2' + >['request']['abi'], + 'phase2', + TMode + > & { functionName?: 'phase2' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'phase2' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'phase2', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function useSystemDictatorRenounceOwnership< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { functionName?: 'renounceOwnership' } + : UseContractWriteConfig< + typeof systemDictatorABI, + 'renounceOwnership', + TMode + > & { + abi?: never + functionName?: 'renounceOwnership' + } = {} as any +) { + return useContractWrite( + { + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'renounceOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. + */ +export function useSystemDictatorStep1< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step1' + >['request']['abi'], + 'step1', + TMode + > & { functionName?: 'step1' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. + */ +export function useSystemDictatorStep2< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step2' + >['request']['abi'], + 'step2', + TMode + > & { functionName?: 'step2' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step2' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step2', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. + */ +export function useSystemDictatorStep3< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step3' + >['request']['abi'], + 'step3', + TMode + > & { functionName?: 'step3' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step3' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step3', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. + */ +export function useSystemDictatorStep4< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step4' + >['request']['abi'], + 'step4', + TMode + > & { functionName?: 'step4' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step4' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step4', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. + */ +export function useSystemDictatorStep5< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'step5' + >['request']['abi'], + 'step5', + TMode + > & { functionName?: 'step5' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step5' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step5', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function useSystemDictatorTransferOwnership< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { functionName?: 'transferOwnership' } + : UseContractWriteConfig< + typeof systemDictatorABI, + 'transferOwnership', + TMode + > & { + abi?: never + functionName?: 'transferOwnership' + } = {} as any +) { + return useContractWrite( + { + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'transferOwnership', + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. + */ +export function useSystemDictatorUpdateDynamicConfig< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorABI, + 'updateDynamicConfig' + >['request']['abi'], + 'updateDynamicConfig', + TMode + > & { functionName?: 'updateDynamicConfig' } + : UseContractWriteConfig< + typeof systemDictatorABI, + 'updateDynamicConfig', + TMode + > & { + abi?: never + functionName?: 'updateDynamicConfig' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorABI, + 'updateDynamicConfig', + TMode + >({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'updateDynamicConfig', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__. + */ +export function usePrepareSystemDictatorWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"exit1"`. + */ +export function usePrepareSystemDictatorExit1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'exit1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"finalize"`. + */ +export function usePrepareSystemDictatorFinalize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'finalize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"initialize"`. + */ +export function usePrepareSystemDictatorInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase1"`. + */ +export function usePrepareSystemDictatorPhase1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'phase1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"phase2"`. + */ +export function usePrepareSystemDictatorPhase2( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'phase2', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function usePrepareSystemDictatorRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'renounceOwnership' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'renounceOwnership' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step1"`. + */ +export function usePrepareSystemDictatorStep1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step2"`. + */ +export function usePrepareSystemDictatorStep2( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step2', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step3"`. + */ +export function usePrepareSystemDictatorStep3( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step3', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step4"`. + */ +export function usePrepareSystemDictatorStep4( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step4', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"step5"`. + */ +export function usePrepareSystemDictatorStep5( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'step5', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function usePrepareSystemDictatorTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'transferOwnership' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'transferOwnership' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorABI}__ and `functionName` set to `"updateDynamicConfig"`. + */ +export function usePrepareSystemDictatorUpdateDynamicConfig( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'updateDynamicConfig' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorABI, + address: systemDictatorAddress, + functionName: 'updateDynamicConfig', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorABI, + 'updateDynamicConfig' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__. + */ +export function useSystemDictatorEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > = {} as any +) { + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress, + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"Initialized"`. + */ +export function useSystemDictatorInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any +) { + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorABI}__ and `eventName` set to `"OwnershipTransferred"`. + */ +export function useSystemDictatorOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any +) { + return useContractEvent({ + abi: systemDictatorABI, + address: systemDictatorAddress, + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function useSystemDictatorGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"EXIT_1_NO_RETURN_STEP"`. + */ +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' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'EXIT_1_NO_RETURN_STEP', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"PROXY_TRANSFER_STEP"`. + */ +export function useSystemDictatorGoerliProxyTransferStep< + TFunctionName extends 'PROXY_TRANSFER_STEP', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'PROXY_TRANSFER_STEP', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"config"`. + */ +export function useSystemDictatorGoerliConfig< + TFunctionName extends 'config', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'config', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"currentStep"`. + */ +export function useSystemDictatorGoerliCurrentStep< + TFunctionName extends 'currentStep', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'currentStep', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"dynamicConfigSet"`. + */ +export function useSystemDictatorGoerliDynamicConfigSet< + TFunctionName extends 'dynamicConfigSet', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'dynamicConfigSet', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalized"`. + */ +export function useSystemDictatorGoerliFinalized< + TFunctionName extends 'finalized', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'finalized', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"l2OutputOracleDynamicConfig"`. + */ +export function useSystemDictatorGoerliL2OutputOracleDynamicConfig< + TFunctionName extends 'l2OutputOracleDynamicConfig', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'l2OutputOracleDynamicConfig', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"oldL1CrossDomainMessenger"`. + */ +export function useSystemDictatorGoerliOldL1CrossDomainMessenger< + TFunctionName extends 'oldL1CrossDomainMessenger', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'oldL1CrossDomainMessenger', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"owner"`. + */ +export function useSystemDictatorGoerliOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult< + typeof systemDictatorGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'owner', + ...config, + } as UseContractReadConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function useSystemDictatorGoerliWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + string + >['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + TFunctionName, + TMode + > & { + abi?: never + } = {} as any +) { + return useContractWrite( + { + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + } as any + ) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. + */ +export function useSystemDictatorGoerliExit1< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'exit1' + >['request']['abi'], + 'exit1', + TMode + > & { functionName?: 'exit1' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'exit1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'exit1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. + */ +export function useSystemDictatorGoerliFinalize< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'finalize' + >['request']['abi'], + 'finalize', + TMode + > & { functionName?: 'finalize' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'finalize', + TMode + > & { + abi?: never + functionName?: 'finalize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'finalize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. + */ +export function useSystemDictatorGoerliInitialize< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'initialize' + >['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'initialize', + TMode + > & { + abi?: never + functionName?: 'initialize' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function useSystemDictatorGoerliRenounceOwnership< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'renounceOwnership' + >['request']['abi'], + 'renounceOwnership', + TMode + > & { functionName?: 'renounceOwnership' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'renounceOwnership', + TMode + > & { + abi?: never + functionName?: 'renounceOwnership' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorGoerliABI, + 'renounceOwnership', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. + */ +export function useSystemDictatorGoerliStep1< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step1' + >['request']['abi'], + 'step1', + TMode + > & { functionName?: 'step1' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step1' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step1', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. + */ +export function useSystemDictatorGoerliStep2< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step2' + >['request']['abi'], + 'step2', + TMode + > & { functionName?: 'step2' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step2' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step2', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. + */ +export function useSystemDictatorGoerliStep3< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step3' + >['request']['abi'], + 'step3', + TMode + > & { functionName?: 'step3' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step3' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step3', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. + */ +export function useSystemDictatorGoerliStep4< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step4' + >['request']['abi'], + 'step4', + TMode + > & { functionName?: 'step4' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step4' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step4', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. + */ +export function useSystemDictatorGoerliStep5< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step5' + >['request']['abi'], + 'step5', + TMode + > & { functionName?: 'step5' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step5' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step5', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. + */ +export function useSystemDictatorGoerliStep6< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'step6' + >['request']['abi'], + 'step6', + TMode + > & { functionName?: 'step6' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'step6' + } = {} as any +) { + return useContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step6', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function useSystemDictatorGoerliTransferOwnership< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'transferOwnership' + >['request']['abi'], + 'transferOwnership', + TMode + > & { functionName?: 'transferOwnership' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'transferOwnership', + TMode + > & { + abi?: never + functionName?: 'transferOwnership' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorGoerliABI, + 'transferOwnership', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. + */ +export function useSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig' + >['request']['abi'], + 'updateL2OutputOracleDynamicConfig', + TMode + > & { functionName?: 'updateL2OutputOracleDynamicConfig' } + : UseContractWriteConfig< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig', + TMode + > & { + abi?: never + functionName?: 'updateL2OutputOracleDynamicConfig' + } = {} as any +) { + return useContractWrite< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig', + TMode + >({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'updateL2OutputOracleDynamicConfig', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function usePrepareSystemDictatorGoerliWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"exit1"`. + */ +export function usePrepareSystemDictatorGoerliExit1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'exit1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"finalize"`. + */ +export function usePrepareSystemDictatorGoerliFinalize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'finalize', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'finalize' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"initialize"`. + */ +export function usePrepareSystemDictatorGoerliInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'initialize' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function usePrepareSystemDictatorGoerliRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'renounceOwnership' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'renounceOwnership' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step1"`. + */ +export function usePrepareSystemDictatorGoerliStep1( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step1', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step2"`. + */ +export function usePrepareSystemDictatorGoerliStep2( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step2', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step3"`. + */ +export function usePrepareSystemDictatorGoerliStep3( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step3', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step4"`. + */ +export function usePrepareSystemDictatorGoerliStep4( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step4', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step5"`. + */ +export function usePrepareSystemDictatorGoerliStep5( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step5', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"step6"`. + */ +export function usePrepareSystemDictatorGoerliStep6( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'step6', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function usePrepareSystemDictatorGoerliTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'transferOwnership' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'transferOwnership' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `functionName` set to `"updateL2OutputOracleDynamicConfig"`. + */ +export function usePrepareSystemDictatorGoerliUpdateL2OutputOracleDynamicConfig( + config: Omit< + UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + functionName: 'updateL2OutputOracleDynamicConfig', + ...config, + } as UsePrepareContractWriteConfig< + typeof systemDictatorGoerliABI, + 'updateL2OutputOracleDynamicConfig' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__. + */ +export function useSystemDictatorGoerliEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > = {} as any +) { + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"Initialized"`. + */ +export function useSystemDictatorGoerliInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any +) { + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link systemDictatorGoerliABI}__ and `eventName` set to `"OwnershipTransferred"`. + */ +export function useSystemDictatorGoerliOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig< + typeof systemDictatorGoerliABI, + 'OwnershipTransferred' + >, + 'abi' | 'address' | 'eventName' + > = {} as any +) { + return useContractEvent({ + abi: systemDictatorGoerliABI, + address: systemDictatorGoerliAddress, + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig< + typeof systemDictatorGoerliABI, + 'OwnershipTransferred' + >) +} + +/** + * 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< + typeof mintManagerABI, + 'renounceOwnership' + >) +} + +/** + * 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< + typeof mintManagerABI, + 'transferOwnership' + >) +} + +/** + * 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}__. + */ +export function useOptimismMintableErc721FactoryRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"bridge"`. + */ +export function useOptimismMintableErc721FactoryBridge< + TFunctionName extends 'bridge', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + functionName: 'bridge', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"isOptimismMintableERC721"`. + */ +export function useOptimismMintableErc721FactoryIsOptimismMintableErc721< + TFunctionName extends 'isOptimismMintableERC721', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + functionName: 'isOptimismMintableERC721', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"remoteChainId"`. + */ +export function useOptimismMintableErc721FactoryRemoteChainId< + TFunctionName extends 'remoteChainId', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + functionName: 'remoteChainId', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"version"`. + */ +export function useOptimismMintableErc721FactoryVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + functionName: 'version', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + */ +export function useOptimismMintableErc721FactoryWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryABI, + string + >['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TMode + > & { + abi?: never + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + */ +export function useOptimismMintableErc721FactoryCreateOptimismMintableErc721< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721' + >['request']['abi'], + 'createOptimismMintableERC721', + TMode + > & { functionName?: 'createOptimismMintableERC721' } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721', + TMode + > & { + abi?: never + functionName?: 'createOptimismMintableERC721' + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721', + TMode + >({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + functionName: 'createOptimismMintableERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + */ +export function usePrepareOptimismMintableErc721FactoryWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >, + 'abi' | 'address' + > = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + */ +export function usePrepareOptimismMintableErc721FactoryCreateOptimismMintableErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + functionName: 'createOptimismMintableERC721', + ...config, + } as UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryABI, + 'createOptimismMintableERC721' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__. + */ +export function useOptimismMintableErc721FactoryEvent< + TEventName extends string +>( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + ...config, + } as UseContractEventConfig< + typeof optimismMintableErc721FactoryABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. + */ +export function useOptimismMintableErc721FactoryOptimismMintableErc721CreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc721FactoryABI, + 'OptimismMintableERC721Created' + >, + 'abi' | 'address' | 'eventName' + > = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryABI, + address: optimismMintableErc721FactoryAddress, + eventName: 'OptimismMintableERC721Created', + ...config, + } as UseContractEventConfig< + typeof optimismMintableErc721FactoryABI, + 'OptimismMintableERC721Created' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliRead< + TFunctionName extends string, + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"BRIDGE"`. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliBridge< + TFunctionName extends 'BRIDGE', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + functionName: 'BRIDGE', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"REMOTE_CHAIN_ID"`. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliRemoteChainId< + TFunctionName extends 'REMOTE_CHAIN_ID', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + functionName: 'REMOTE_CHAIN_ID', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"isOptimismMintableERC721"`. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliIsOptimismMintableErc721< + TFunctionName extends 'isOptimismMintableERC721', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + functionName: 'isOptimismMintableERC721', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"version"`. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + > +>( + config: Omit< + UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return useContractRead({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + functionName: 'version', + ...config, + } as UseContractReadConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + string + >['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TMode + > & { + abi?: never + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName, + TMode + >({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721< + TMode extends WriteContractMode = undefined +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721' + >['request']['abi'], + 'createOptimismMintableERC721', + TMode + > & { functionName?: 'createOptimismMintableERC721' } + : UseContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721', + TMode + > & { + abi?: never + functionName?: 'createOptimismMintableERC721' + } = {} as any +) { + return useContractWrite< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721', + TMode + >({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + functionName: 'createOptimismMintableERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function usePrepareOptimismMintableErc721FactoryOptimismGoerliWrite< + TFunctionName extends string +>( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >, + 'abi' | 'address' + > = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + } as UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `functionName` set to `"createOptimismMintableERC721"`. + */ +export function usePrepareOptimismMintableErc721FactoryOptimismGoerliCreateOptimismMintableErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721' + >, + 'abi' | 'address' | 'functionName' + > = {} as any +) { + return usePrepareContractWrite({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + functionName: 'createOptimismMintableERC721', + ...config, + } as UsePrepareContractWriteConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'createOptimismMintableERC721' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliEvent< + TEventName extends string +>( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TEventName + >, + 'abi' | 'address' + > = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + ...config, + } as UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link optimismMintableErc721FactoryOptimismGoerliABI}__ and `eventName` set to `"OptimismMintableERC721Created"`. + */ +export function useOptimismMintableErc721FactoryOptimismGoerliOptimismMintableErc721CreatedEvent( + config: Omit< + UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'OptimismMintableERC721Created' + >, + 'abi' | 'address' | 'eventName' + > = {} as any +) { + return useContractEvent({ + abi: optimismMintableErc721FactoryOptimismGoerliABI, + address: optimismMintableErc721FactoryOptimismGoerliAddress, + eventName: 'OptimismMintableERC721Created', + ...config, + } as UseContractEventConfig< + typeof optimismMintableErc721FactoryOptimismGoerliABI, + 'OptimismMintableERC721Created' + >) +} + +/** + * 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< + typeof baseFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof baseFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof baseFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof baseFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof baseFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof gasPriceOracleABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + TFunctionName + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + 'initialize' + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + 'relayMessage' + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + 'sendMessage' + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + 'FailedRelayedMessage' + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + 'RelayedMessage' + >) +} + +/** + * 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< + typeof l2CrossDomainMessengerABI, + 'SentMessageExtension1' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeRead< + TFunctionName extends string, + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as UseContractReadConfig< + typeof l2Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"messenger"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeMessenger< + TFunctionName extends 'messenger', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'messenger', + ...config, + } as UseContractReadConfig< + typeof l2Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"otherBridge"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeOtherBridge< + TFunctionName extends 'otherBridge', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'otherBridge', + ...config, + } as UseContractReadConfig< + typeof l2Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"version"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeVersion< + TFunctionName extends 'version', + TSelectData = ReadContractResult +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractRead({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'version', + ...config, + } as UseContractReadConfig< + typeof l2Erc721BridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + string + >['request']['abi'], + TFunctionName, + TMode + > & { address?: Address; chainId?: TChainId } + : UseContractWriteConfig & { + abi?: never + address?: never + chainId?: TChainId + } = {} as any +) { + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'bridgeERC721' + >['request']['abi'], + 'bridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'bridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721' + } = {} as any +) { + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeBridgeErc721To< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'bridgeERC721To' + >['request']['abi'], + 'bridgeERC721To', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'bridgeERC721To' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'bridgeERC721To', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'bridgeERC721To' + } = {} as any +) { + return useContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721To', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeFinalizeBridgeErc721< + TMode extends WriteContractMode = undefined, + TChainId extends number = keyof typeof l2Erc721BridgeAddress +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' + >['request']['abi'], + 'finalizeBridgeERC721', + TMode + > & { + address?: Address + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } + : UseContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + > & { + abi?: never + address?: never + chainId?: TChainId + functionName?: 'finalizeBridgeERC721' + } = {} as any +) { + return useContractWrite< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721', + TMode + >({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'finalizeBridgeERC721', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"bridgeERC721To"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeBridgeErc721To( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'bridgeERC721To', + ...config, + } as UsePrepareContractWriteConfig< + typeof l2Erc721BridgeABI, + 'bridgeERC721To' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `functionName` set to `"finalizeBridgeERC721"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function usePrepareL2Erc721BridgeFinalizeBridgeErc721( + config: Omit< + UsePrepareContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' + >, + 'abi' | 'address' | 'functionName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return usePrepareContractWrite({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + functionName: 'finalizeBridgeERC721', + ...config, + } as UsePrepareContractWriteConfig< + typeof l2Erc721BridgeABI, + 'finalizeBridgeERC721' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeFinalized"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeErc721BridgeFinalizedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + eventName: 'ERC721BridgeFinalized', + ...config, + } as UseContractEventConfig< + typeof l2Erc721BridgeABI, + 'ERC721BridgeFinalized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link l2Erc721BridgeABI}__ and `eventName` set to `"ERC721BridgeInitiated"`. + * + * [__View Contract on Optimism Goerli Etherscan__](https://goerli-optimism.etherscan.io/address/0x4200000000000000000000000000000000000014) + */ +export function useL2Erc721BridgeErc721BridgeInitiatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > & { chainId?: keyof typeof l2Erc721BridgeAddress } = {} as any +) { + return useContractEvent({ + abi: l2Erc721BridgeABI, + address: l2Erc721BridgeAddress[420], + eventName: 'ERC721BridgeInitiated', + ...config, + } as UseContractEventConfig< + typeof l2Erc721BridgeABI, + 'ERC721BridgeInitiated' + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + 'bridgeERC20To' + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + 'finalizeBridgeERC20' + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + 'finalizeBridgeETH' + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + 'finalizeDeposit' + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + 'ERC20BridgeFinalized' + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + 'ERC20BridgeInitiated' + >) +} + +/** + * 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< + typeof l2StandardBridgeABI, + 'WithdrawalInitiated' + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + TFunctionName + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + 'initiateWithdrawal' + >) +} + +/** + * 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< + typeof l2ToL1MessagePasserABI, + 'WithdrawerBalanceBurnt' + >) +} + +/** + * 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< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof sequencerFeeVaultABI, + TFunctionName, + TSelectData + >) +} + +/** + * 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< + typeof sequencerFeeVaultABI, + TFunctionName + >) +} + +/** + * 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/tsconfig.json b/packages/contracts-ts/tsconfig.json new file mode 100644 index 0000000000000..5091614ef5619 --- /dev/null +++ b/packages/contracts-ts/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist" + }, + "include": [ + "deploy-config/**/*", + "deploy-config/**/*.json", + "scripts/**/*" + ] +} diff --git a/packages/contracts-ts/tsup.config.ts b/packages/contracts-ts/tsup.config.ts new file mode 100644 index 0000000000000..b3fb66bf0595c --- /dev/null +++ b/packages/contracts-ts/tsup.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + name: '@eth-optimsim/contracts-ts', + entry: ['src/index.ts', 'src/actions.ts', 'src/react.ts'], + outDir: 'dist', + format: ['esm', 'cjs'], + splitting: false, + sourcemap: true, + clean: false, +}) diff --git a/packages/contracts-ts/wagmi.config.ts b/packages/contracts-ts/wagmi.config.ts new file mode 100644 index 0000000000000..0eadb53226933 --- /dev/null +++ b/packages/contracts-ts/wagmi.config.ts @@ -0,0 +1,313 @@ +import { ContractConfig, defineConfig, Plugin } from '@wagmi/cli' +import { actions, react } from '@wagmi/cli/plugins' +import glob from 'glob' +import { readFileSync, writeFileSync } from 'fs' +import type { Abi, AbiFunction, Address } from 'abitype' +import { isDeepStrictEqual } from 'util' + +/** + * Predeployed contract addresses + * In future it would be nice to have a json file in contracts bedrock be generated as source of truth + */ +const predeployAddresses = { + "LegacyMessagePasser": { + "address": "0x4200000000000000000000000000000000000000", + "introduced": "Legacy", + "deprecated": true, + "proxied": true + }, + "DeployerWhitelist": { + "address": "0x4200000000000000000000000000000000000002", + "introduced": "Legacy", + "deprecated": true, + "proxied": true + }, + "LegacyERC20ETH": { + "address": "0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000", + "introduced": "Legacy", + "deprecated": true, + "proxied": false + }, + "WETH9": { + "address": "0x4200000000000000000000000000000000000006", + "introduced": "Legacy", + "deprecated": false, + "proxied": false + }, + "L2CrossDomainMessenger": { + "address": "0x4200000000000000000000000000000000000007", + "introduced": "Legacy", + "deprecated": false, + "proxied": true + }, + "L2StandardBridge": { + "address": "0x4200000000000000000000000000000000000010", + "introduced": "Legacy", + "deprecated": false, + "proxied": true + }, + "SequencerFeeVault": { + "address": "0x4200000000000000000000000000000000000011", + "introduced": "Legacy", + "deprecated": false, + "proxied": true + }, + "OptimismMintableERC20Factory": { + "address": "0x4200000000000000000000000000000000000012", + "introduced": "Legacy", + "deprecated": false, + "proxied": true + }, + "L1BlockNumber": { + "address": "0x4200000000000000000000000000000000000013", + "introduced": "Legacy", + "deprecated": true, + "proxied": true + }, + "GasPriceOracle": { + "address": "0x420000000000000000000000000000000000000F", + "introduced": "Legacy", + "deprecated": false, + "proxied": true + }, + "GovernanceToken": { + "address": "0x4200000000000000000000000000000000000042", + "introduced": "Legacy", + "deprecated": false, + "proxied": false + }, + "L1Block": { + "address": "0x4200000000000000000000000000000000000015", + "introduced": "Bedrock", + "deprecated": false, + "proxied": true + }, + "L2ToL1MessagePasser": { + "address": "0x4200000000000000000000000000000000000016", + "introduced": "Bedrock", + "deprecated": false, + "proxied": true + }, + "L2ERC721Bridge": { + "address": "0x4200000000000000000000000000000000000014", + "introduced": "Legacy", + "deprecated": false, + "proxied": true + }, + "OptimismMintableERC721Factory": { + "address": "0x4200000000000000000000000000000000000017", + "introduced": "Bedrock", + "deprecated": false, + "proxied": true + }, + "ProxyAdmin": { + "address": "0x4200000000000000000000000000000000000018", + "introduced": "Bedrock", + "deprecated": false, + "proxied": true + }, + "BaseFeeVault": { + "address": "0x4200000000000000000000000000000000000019", + "introduced": "Bedrock", + "deprecated": false, + "proxied": true + }, + "L1FeeVault": { + "address": "0x420000000000000000000000000000000000001a", + "introduced": "Bedrock", + "deprecated": false, + "proxied": true + } +} as const; + +type DeploymentJson = { + abi: Abi + address: `0x${string}`, +} +const chains = { + 1: 'mainnet', + 10: 'optimism-mainnet', + 5: 'goerli', + 420: 'optimism-goerli', +} as const + +if (!glob.sync('node_modules/*').length) { + throw new Error('No node_modules found. Please run `pnpm install` before running this script') +} + +const deployments = { + [1]: glob.sync(`node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[1]}/*.json`), + [10]: glob.sync(`node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[10]}/*.json`), + [5]: glob.sync(`node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[5]}/*.json`), + [420]: glob.sync(`node_modules/@eth-optimism/contracts-bedrock/deployments/${chains[420]}/*.json`), +} + +Object.entries(deployments).forEach(([chain, deploymentFiles]) => { + if (deploymentFiles.length === 0) { + throw new Error(`No deployments found for ${chains[chain]}`) + } +}) + +const getWagmiContracts = (deploymentFiles: string[]) => deploymentFiles.map(artifactPath => { + const deployment = JSON.parse(readFileSync(artifactPath, 'utf8')) as DeploymentJson + // There is a wagmi bug we need to filter out the MESSENGER method because it collides with messenger + // @see https://github.com/wagmi-dev/wagmi/issues/2724 + const filterOut = new Set([ + 'MESSENGER', + 'OTHER_BRIDGE', + 'VERSION', + 'DECIMALS' + ]) + const abi = deployment.abi + .filter((item) => !filterOut.has((item as AbiFunction).name)) + const contractConfig = { + abi, + name: artifactPath.split('/').reverse()[0]?.replace('.json', ''), + address: deployment.address, + } satisfies ContractConfig + if (!contractConfig.name) { + throw new Error('Unable to identify the name of the contract at ' + artifactPath) + } + return contractConfig +}) + +/** + * Returns the contracts for the wagmi cli config + */ +export const getContractConfigs = () => { + const contracts = { + // later code assume mainnet is first!!! + 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 = predeployAddresses[contract.name as keyof typeof predeployAddresses] 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]}` + config.push({ + abi: implementation.abi, + name, + address: predeploy?.address ?? proxies[chain]?.address ?? implementation?.address + } satisfies ContractConfig) + } + }) + 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 + } + }) + // 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 +} + +const contracts = getContractConfigs() + +/** + * 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 + ` + } + }, +} + +/** + * This plugin adds an eslint ignore to the generated code + */ +const eslintIgnorePlugin: Plugin = { + name: 'eslintIgnore', + run: async () => { + return { + prepend: `/* eslint-disable */`, + content: `` + } + }, +} + +export default defineConfig([{ + out: 'src/constants.ts', + contracts, + plugins: [eslintIgnorePlugin, addressesByContractByNetworkPlugin] +} + , { + 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 ede5af3ddc0f2..ed8e22b635703 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -396,6 +396,64 @@ importers: specifier: ^8.1.0 version: 8.1.0(typescript@4.9.5) + packages/contracts-ts: + dependencies: + '@wagmi/core': + specifier: '>1.0.0' + version: 1.0.1(react@18.2.0)(typescript@4.9.5)(viem@0.3.30) + viem: + specifier: ^0.3.30 + version: 0.3.30(typescript@4.9.5) + vitest: + specifier: ^0.28.3 + version: 0.28.3 + wagmi: + specifier: '>1.0.0' + version: 1.0.1(react@18.2.0)(typescript@4.9.5)(viem@0.3.30) + devDependencies: + '@eth-optimism/contracts-bedrock': + specifier: workspace:0.15.0 + version: link:../contracts-bedrock + '@types/glob': + specifier: ^8.1.0 + version: 8.1.0 + '@typescript-eslint/eslint-plugin': + specifier: ^5.60.1 + version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.60.1 + version: 5.60.1(eslint@8.43.0)(typescript@4.9.5) + '@wagmi/cli': + specifier: ^1.3.0 + version: 1.3.0(typescript@4.9.5) + abitype: + specifier: ^0.9.0 + version: 0.9.0(typescript@4.9.5) + ds-test: + specifier: github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084 + version: github.com/dapphub/ds-test/c9ce3f25bde29fc5eb9901842bf02850dfd2d084 + forge-std: + specifier: github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e + version: github.com/foundry-rs/forge-std/e8a047e3f40f13fa37af6fe14e6e06283d9a060e + glob: + specifier: ^7.2.3 + version: 7.2.3 + solhint: + specifier: ^3.4.1 + version: 3.4.1 + solhint-plugin-prettier: + specifier: ^0.0.5 + version: 0.0.5(prettier-plugin-solidity@1.1.3)(prettier@2.8.8) + ts-node: + specifier: ^10.9.1 + version: 10.9.1(@types/node@12.20.55)(typescript@4.9.5) + tsup: + specifier: ^7.1.0 + version: 7.1.0(ts-node@10.9.1)(typescript@4.9.5) + typescript: + specifier: ^4.9.3 + version: 4.9.5 + packages/core-utils: dependencies: '@ethersproject/abi': @@ -613,7 +671,6 @@ packages: /@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==} @@ -884,7 +941,7 @@ packages: resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.7 + '@babel/code-frame': 7.22.5 '@babel/generator': 7.18.2 '@babel/helper-environment-visitor': 7.18.2 '@babel/helper-function-name': 7.17.9 @@ -1127,7 +1184,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 @@ -1146,6 +1203,34 @@ packages: - supports-color - typescript + /@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 + dev: false + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1229,6 +1314,23 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + optional: true + + /@esbuild/android-arm64@0.18.11: + resolution: {integrity: sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + 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 @@ -1247,6 +1349,14 @@ packages: cpu: [arm] os: [android] requiresBuild: true + optional: true + + /@esbuild/android-arm@0.18.11: + resolution: {integrity: sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true dev: true optional: true @@ -1256,6 +1366,14 @@ packages: cpu: [x64] os: [android] requiresBuild: true + optional: true + + /@esbuild/android-x64@0.18.11: + resolution: {integrity: sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true dev: true optional: true @@ -1265,6 +1383,14 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + optional: true + + /@esbuild/darwin-arm64@0.18.11: + resolution: {integrity: sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true dev: true optional: true @@ -1274,6 +1400,14 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + optional: true + + /@esbuild/darwin-x64@0.18.11: + resolution: {integrity: sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true dev: true optional: true @@ -1283,6 +1417,14 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + optional: true + + /@esbuild/freebsd-arm64@0.18.11: + resolution: {integrity: sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true dev: true optional: true @@ -1292,6 +1434,14 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + optional: true + + /@esbuild/freebsd-x64@0.18.11: + resolution: {integrity: sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true dev: true optional: true @@ -1301,6 +1451,14 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-arm64@0.18.11: + resolution: {integrity: sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1310,6 +1468,14 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-arm@0.18.11: + resolution: {integrity: sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1319,6 +1485,23 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-ia32@0.18.11: + resolution: {integrity: sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + 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 @@ -1337,6 +1520,14 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-loong64@0.18.11: + resolution: {integrity: sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1346,6 +1537,14 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-mips64el@0.18.11: + resolution: {integrity: sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1355,6 +1554,14 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-ppc64@0.18.11: + resolution: {integrity: sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1364,6 +1571,14 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-riscv64@0.18.11: + resolution: {integrity: sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1373,6 +1588,14 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-s390x@0.18.11: + resolution: {integrity: sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1382,6 +1605,14 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + optional: true + + /@esbuild/linux-x64@0.18.11: + resolution: {integrity: sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true dev: true optional: true @@ -1391,6 +1622,14 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + optional: true + + /@esbuild/netbsd-x64@0.18.11: + resolution: {integrity: sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true dev: true optional: true @@ -1400,6 +1639,14 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + optional: true + + /@esbuild/openbsd-x64@0.18.11: + resolution: {integrity: sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true dev: true optional: true @@ -1409,6 +1656,14 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + optional: true + + /@esbuild/sunos-x64@0.18.11: + resolution: {integrity: sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true dev: true optional: true @@ -1418,6 +1673,14 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + optional: true + + /@esbuild/win32-arm64@0.18.11: + resolution: {integrity: sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true optional: true @@ -1427,6 +1690,14 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + optional: true + + /@esbuild/win32-ia32@0.18.11: + resolution: {integrity: sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true dev: true optional: true @@ -1436,6 +1707,14 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + optional: true + + /@esbuild/win32-x64@0.18.11: + resolution: {integrity: sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true dev: true optional: true @@ -1538,7 +1817,7 @@ packages: '@types/node-fetch': 2.5.10 ethers: 5.7.1 mkdirp: 0.5.6 - node-fetch: 2.6.7 + node-fetch: 2.6.12 solc: 0.6.12 ts-generator: 0.1.1 typechain: 3.0.0(typescript@4.9.3) @@ -1561,7 +1840,7 @@ packages: '@types/node-fetch': 2.5.10 ethers: 5.7.1 mkdirp: 0.5.6 - node-fetch: 2.6.7 + node-fetch: 2.6.12 solc: 0.6.12 ts-generator: 0.1.1 typechain: 3.0.0(typescript@4.9.5) @@ -1579,7 +1858,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 @@ -2153,6 +2432,39 @@ 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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@ledgerhq/connect-kit-loader@1.1.0: + resolution: {integrity: sha512-HUy12FEczoWY2FPubnsm1uOA8tkVWc0j90i47suThV3C9NL2xx69ZAIEU3Ytzs2bwLek9S1Q2S1VQJvA+3Ygkg==} + dev: false + /@ledgerhq/cryptoassets@5.53.0: resolution: {integrity: sha512-M3ibc3LRuHid5UtL7FI3IC6nMEppvly98QHFoSa7lJU0HDzQxY6zHec/SPM4uuJUC8sXoGVAiRJDkgny54damw==} dependencies: @@ -2342,6 +2654,16 @@ packages: - supports-color dev: true + /@lit-labs/ssr-dom-shim@1.1.1: + resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==} + dev: false + + /@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 + dev: false + /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: @@ -2373,27 +2695,102 @@ packages: tweetnacl-util: 0.15.1 dev: true - /@noble/curves@1.0.0: - resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==} - dependencies: - '@noble/hashes': 1.3.0 - dev: true - - /@noble/hashes@1.0.0: - resolution: {integrity: sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg==} - dev: true + /@metamask/safe-event-emitter@2.0.0: + resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} + dev: false - /@noble/hashes@1.3.0: - resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} - dev: true + /@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 + dev: false - /@noble/secp256k1@1.5.5: - resolution: {integrity: sha512-sZ1W6gQzYnu45wPrWx8D3kwI2/U29VYTx9OjbDAd7jwRItJ0cSTMPRL/C8AWZFn9kWFLQGqEXVEE86w4Z8LpIQ==} - dev: true + /@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 + dev: false - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + /@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 + dev: false + + /@motionone/easing@10.15.1: + resolution: {integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==} + dependencies: + '@motionone/utils': 10.15.1 + tslib: 2.6.0 + dev: false + + /@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 + dev: false + + /@motionone/svelte@10.16.2: + resolution: {integrity: sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==} + dependencies: + '@motionone/dom': 10.16.2 + tslib: 2.6.0 + dev: false + + /@motionone/types@10.15.1: + resolution: {integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==} + dev: false + + /@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 + dev: false + + /@motionone/vue@10.16.2: + resolution: {integrity: sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==} + dependencies: + '@motionone/dom': 10.16.2 + tslib: 2.6.0 + dev: false + + /@noble/curves@1.0.0: + resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==} + dependencies: + '@noble/hashes': 1.3.0 + + /@noble/hashes@1.0.0: + resolution: {integrity: sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg==} + dev: true + + /@noble/hashes@1.3.0: + resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} + + /@noble/secp256k1@1.5.5: + resolution: {integrity: sha512-sZ1W6gQzYnu45wPrWx8D3kwI2/U29VYTx9OjbDAd7jwRItJ0cSTMPRL/C8AWZFn9kWFLQGqEXVEE86w4Z8LpIQ==} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 @@ -2951,7 +3348,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 @@ -3002,6 +3399,10 @@ packages: node-gyp-build: 4.6.0 dev: true + /@pedrouid/environment@1.0.1: + resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -3055,13 +3456,53 @@ 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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@safe-global/safe-gateway-typescript-sdk@3.7.3: + resolution: {integrity: sha512-O6JCgXNZWG0Vv8FnOEjKfcbsP0WxGvoPJk5ufqUrsyBlHup16It6oaLnn+25nXFLBZOHI1bz8429JlqAc2t2hg==} + dependencies: + cross-fetch: 3.1.8 + transitivePeerDependencies: + - encoding + dev: false + /@scure/base@1.0.0: resolution: {integrity: sha512-gIVaYhUsy+9s58m/ETjSJVKHhKTBMmcRb9cEV5/5dwvfDlfORjKrFsDeDHWRrm6RjcPvCLZFwGJjAjLj1gg4HA==} dev: true /@scure/base@1.1.1: resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} - dev: true /@scure/bip32@1.0.1: resolution: {integrity: sha512-AU88KKTpQ+YpTLoicZ/qhFhRRIo96/tlb+8YmDDHR9yiKVjSsFZiefJO4wjS2PMTkz5/oIcw84uAq/8pleQURA==} @@ -3077,7 +3518,6 @@ packages: '@noble/curves': 1.0.0 '@noble/hashes': 1.3.0 '@scure/base': 1.1.1 - dev: true /@scure/bip39@1.0.0: resolution: {integrity: sha512-HrtcikLbd58PWOkl02k9V6nXWQyoa7A0+Ek9VF7z17DDk9XZAFUcIdqfh0jJXLypmizc5/8P6OxoUeKliiWv4w==} @@ -3091,7 +3531,6 @@ packages: 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==} @@ -3270,6 +3709,38 @@ 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 + dev: false + + /@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 + dev: false + /@solidity-parser/parser@0.13.2: resolution: {integrity: sha512-RwHnpRnfrnD2MSPveYoPh8nhofEvX7fgjHk1Oq+NNvCcLx4r1js91CO9o+F/F3fBzOCyvm8kKRTriFICX/odWw==} dependencies: @@ -3288,6 +3759,122 @@ packages: antlr4ts: 0.5.0-alpha.4 dev: true + /@stablelib/aead@1.0.1: + resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==} + dev: false + + /@stablelib/binary@1.0.1: + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} + dependencies: + '@stablelib/int': 1.0.1 + dev: false + + /@stablelib/bytes@1.0.1: + resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} + dev: false + + /@stablelib/chacha20poly1305@1.0.1: + resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==} + dependencies: + '@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 + dev: false + + /@stablelib/chacha@1.0.1: + resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/constant-time@1.0.1: + resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==} + dev: false + + /@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 + dev: false + + /@stablelib/hash@1.0.1: + resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==} + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@stablelib/int@1.0.1: + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + dev: false + + /@stablelib/keyagreement@1.0.1: + resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} + dependencies: + '@stablelib/bytes': 1.0.1 + dev: false + + /@stablelib/poly1305@1.0.1: + resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==} + dependencies: + '@stablelib/constant-time': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/random@1.0.2: + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@stablelib/wipe@1.0.1: + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + dev: false + + /@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 + dev: false + /@szmarczak/http-timer@1.1.2: resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} engines: {node: '>=6'} @@ -3295,6 +3882,48 @@ packages: defer-to-connect: 1.1.3 dev: true + /@tanstack/query-core@4.29.19: + resolution: {integrity: sha512-uPe1DukeIpIHpQi6UzIgBcXsjjsDaLnc7hF+zLBKnaUlh7jFE/A+P8t4cU4VzKPMFB/C970n/9SxtpO5hmIRgw==} + dev: false + + /@tanstack/query-persist-client-core@4.29.19: + resolution: {integrity: sha512-rr6p3xwEZCz3cEDZsj3QGePf6PG44WxRUGQVcm2JFPZOq9TkG/0i5+hQ3STiHm1Fj6qwCH8xIi62L8kG0zRj/Q==} + dependencies: + '@tanstack/query-core': 4.29.19 + dev: false + + /@tanstack/query-sync-storage-persister@4.29.19: + resolution: {integrity: sha512-B3wDl3D3YBFTlY2yeXecEh4NEG/8Hr8pqsxnWJijRwBqvOKlqD4bUgk5kl5nbn1mShD2vnQ+yvH900/11X29Zw==} + dependencies: + '@tanstack/query-persist-client-core': 4.29.19 + dev: false + + /@tanstack/react-query-persist-client@4.29.19(@tanstack/react-query@4.29.19): + resolution: {integrity: sha512-LfcasTosdnI9K66HTP0Rk72Ypza3tCgrcF9bc2qFlKsBleYOYo8bz7/GiiOHj1SQH4GRQlKB+P4+/it+qlJg4g==} + peerDependencies: + '@tanstack/react-query': 4.29.19 + dependencies: + '@tanstack/query-persist-client-core': 4.29.19 + '@tanstack/react-query': 4.29.19(react@18.2.0) + dev: false + + /@tanstack/react-query@4.29.19(react@18.2.0): + resolution: {integrity: sha512-XiTIOHHQ5Cw1WUlHaD4fmVUMhoWjuNJlAeJGq7eM4BraI5z7y8WkZO+NR8PSuRnQGblpuVdjClQbDFtwxTtTUw==} + 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.19 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + /@textlint/ast-node-types@12.2.1: resolution: {integrity: sha512-NXYza6aG1+LdZ4g83gjRhDht+gdrTjJYkdcQhpvzNCtTar/sVpaykkauRcAKLhkIWrQpfb311pfMlU6qNDW76Q==} dev: true @@ -3446,7 +4075,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: @@ -3459,7 +4088,6 @@ packages: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: '@types/chai': 4.3.5 - dev: true /@types/chai@4.2.21: resolution: {integrity: sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==} @@ -3471,7 +4099,6 @@ packages: /@types/chai@4.3.5: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} - dev: true /@types/concat-stream@1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} @@ -3483,15 +4110,20 @@ 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 + dev: false + /@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 @@ -3518,6 +4150,13 @@ packages: '@types/node': 12.20.55 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: @@ -3591,6 +4230,10 @@ packages: '@types/node': 17.0.21 dev: true + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: false + /@types/node-fetch@2.5.10: resolution: {integrity: sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==} dependencies: @@ -3645,7 +4288,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: @@ -3699,7 +4342,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: @@ -3715,6 +4358,10 @@ packages: '@sinonjs/fake-timers': 7.1.2 dev: true + /@types/trusted-types@2.0.3: + resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} + dev: false + /@types/underscore@1.11.3: resolution: {integrity: sha512-Fl1TX1dapfXyDqFg2ic9M+vlXRktcPJrc4PR7sRc7sdVrjavg/JHlbUXBt8qWWqhJrmSqg3RNAkAPRiOYw6Ahw==} dev: true @@ -3730,6 +4377,12 @@ packages: '@types/underscore': 1.11.3 dev: true + /@types/ws@7.4.7: + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + dependencies: + '@types/node': 12.20.55 + dev: false + /@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} @@ -3758,6 +4411,34 @@ packages: - supports-color dev: true + /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/type-utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.43.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.3 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@5.60.1(eslint@8.43.0)(typescript@4.9.3): resolution: {integrity: sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3778,6 +4459,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@5.60.1(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/typescript-estree': 5.60.1(typescript@4.9.5) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.43.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@5.60.1: resolution: {integrity: sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3806,6 +4507,26 @@ packages: - supports-color dev: true + /@typescript-eslint/type-utils@5.60.1(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.60.1(typescript@4.9.5) + '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.43.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types@5.60.1: resolution: {integrity: sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3832,11 +4553,32 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.60.1(eslint@8.43.0)(typescript@4.9.3): - resolution: {integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==} + /@typescript-eslint/typescript-estree@5.60.1(typescript@4.9.5): + resolution: {integrity: sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/visitor-keys': 5.60.1 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.3 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.60.1(eslint@8.43.0)(typescript@4.9.3): + resolution: {integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) '@types/json-schema': 7.0.11 @@ -3852,6 +4594,26 @@ packages: - typescript dev: true + /@typescript-eslint/utils@5.60.1(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/typescript-estree': 5.60.1(typescript@4.9.5) + eslint: 8.43.0 + eslint-scope: 5.1.1 + semver: 7.5.3 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@5.60.1: resolution: {integrity: sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3870,7 +4632,6 @@ packages: '@vitest/spy': 0.28.3 '@vitest/utils': 0.28.3 chai: 4.3.7 - dev: true /@vitest/runner@0.28.3: resolution: {integrity: sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ==} @@ -3878,13 +4639,11 @@ packages: '@vitest/utils': 0.28.3 p-limit: 4.0.0 pathe: 1.1.1 - dev: true /@vitest/spy@0.28.3: resolution: {integrity: sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w==} dependencies: tinyspy: 1.0.2 - dev: true /@vitest/utils@0.28.3: resolution: {integrity: sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ==} @@ -3894,7 +4653,6 @@ packages: loupe: 2.3.6 picocolors: 1.0.0 pretty-format: 27.5.1 - dev: true /@vue/compiler-core@3.2.36: resolution: {integrity: sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==} @@ -3912,52 +4670,584 @@ packages: '@vue/shared': 3.2.36 dev: true - /@vue/compiler-sfc@3.2.36: - resolution: {integrity: sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==} + /@vue/compiler-sfc@3.2.36: + resolution: {integrity: sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==} + dependencies: + '@babel/parser': 7.18.4 + '@vue/compiler-core': 3.2.36 + '@vue/compiler-dom': 3.2.36 + '@vue/compiler-ssr': 3.2.36 + '@vue/reactivity-transform': 3.2.36 + '@vue/shared': 3.2.36 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: 8.4.24 + 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 + 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.16(typescript@4.9.5): + resolution: {integrity: sha512-rkWaI2PxCnbD8G07ZZff5QXftnSkYL0h5f4DkHCG3fGYYr/ZDvmCL4bMae7j7A9sAif1csPPBmbCzHp3R5ogCQ==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.5 + dev: false + + /@wagmi/chains@0.2.22(typescript@4.9.5): + resolution: {integrity: sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.5 + dev: false + + /@wagmi/chains@1.2.0(typescript@4.9.5): + resolution: {integrity: sha512-dmDRipsE54JfyudOBkuhEexqQWcrZqxn/qiujG8SBzMh/az/AH5xlJSA+j1CPWTx9+QofSMF3B7A4gb6XRmSaQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.5 + dev: true + + /@wagmi/chains@1.3.0(typescript@4.9.5): + resolution: {integrity: sha512-7tyr1irTZQpA4/4HoIiJP3XYZuJIZuWiZ1V1j5WEG3cjm8TXIlMEzO0N+hT/cZKw4/UtF2EukvB8GkDWa2S77w==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 4.9.5 + dev: true + + /@wagmi/cli@1.3.0(typescript@4.9.5): + resolution: {integrity: sha512-/YXmdp0XWgQEwRSVO8IjVB8KY5HK+6+eqJsZI3a+y3XMH4T/NxVBoT/JxTqV6HEivr3HOLgDcTzvQhNy3mZ0HA==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + '@wagmi/core': '>=1.0.0' + typescript: '>=5.0.4' + wagmi: '>=1.0.0' + peerDependenciesMeta: + '@wagmi/core': + optional: true + typescript: + optional: true + wagmi: + optional: true + dependencies: + '@wagmi/chains': 1.3.0(typescript@4.9.5) + abitype: 0.8.7(typescript@4.9.5)(zod@3.21.4) + abort-controller: 3.0.0 + bundle-require: 3.1.2(esbuild@0.15.13) + cac: 6.7.14 + change-case: 4.1.2 + chokidar: 3.5.3 + dedent: 0.7.0 + detect-package-manager: 2.0.1 + dotenv: 16.1.4 + dotenv-expand: 10.0.0 + esbuild: 0.15.13 + execa: 6.1.0 + find-up: 6.3.0 + fs-extra: 10.1.0 + globby: 13.2.2 + node-fetch: 3.3.1 + ora: 6.3.1 + pathe: 1.1.1 + picocolors: 1.0.0 + prettier: 2.8.8 + typescript: 4.9.5 + viem: 1.2.13(typescript@4.9.5)(zod@3.21.4) + zod: 3.21.4 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@wagmi/connectors@1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@4.9.5)(viem@0.3.30): + resolution: {integrity: sha512-fl01vym19DE1uoE+MlASw5zo3Orr/YXlJRjOKLaKYtV+Q7jOLY4TwHgq7sEMs+JYOvFICFBEAlWNNxidr51AqQ==} + peerDependencies: + '@wagmi/chains': '>=0.2.0' + typescript: '>=4.9.4' + viem: ~0.3.18 + peerDependenciesMeta: + '@wagmi/chains': + optional: true + typescript: + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.7.1 + '@ledgerhq/connect-kit-loader': 1.1.0 + '@safe-global/safe-apps-provider': 0.15.2 + '@safe-global/safe-apps-sdk': 7.11.0 + '@wagmi/chains': 0.2.22(typescript@4.9.5) + '@walletconnect/ethereum-provider': 2.7.2(@web3modal/standalone@2.4.3) + '@walletconnect/legacy-provider': 2.0.0 + '@web3modal/standalone': 2.4.3(react@18.2.0) + abitype: 0.8.1(typescript@4.9.5) + eventemitter3: 4.0.7 + typescript: 4.9.5 + viem: 0.3.30(typescript@4.9.5) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - react + - supports-color + - utf-8-validate + - zod + dev: false + + /@wagmi/core@1.0.1(react@18.2.0)(typescript@4.9.5)(viem@0.3.30): + resolution: {integrity: sha512-Zzg4Ob92QMF9NsC+z5/8JZjMn3NCCnwVWGJlv79qRX9mp5Ku40OzJNvqDnjcSGjshe6H0L/KtFZAqTlmu8lT7w==} + peerDependencies: + typescript: '>=4.9.4' + viem: ~0.3.18 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@wagmi/chains': 0.2.22(typescript@4.9.5) + '@wagmi/connectors': 1.0.1(@wagmi/chains@0.2.22)(react@18.2.0)(typescript@4.9.5)(viem@0.3.30) + abitype: 0.8.1(typescript@4.9.5) + eventemitter3: 4.0.7 + typescript: 4.9.5 + viem: 0.3.30(typescript@4.9.5) + 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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@walletconnect/environment@1.0.1: + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + dependencies: + tslib: 1.14.1 + dev: false + + /@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 + dev: false + + /@walletconnect/events@1.0.1: + resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@walletconnect/jsonrpc-types@1.0.3: + resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==} + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@walletconnect/legacy-types@2.0.0: + resolution: {integrity: sha512-sOVrA7HUdbI1OwKyPOQU0/DdvTSVFlsXWpAk2K2WvP2erTkBWPMTJq6cv2BmKdoJ3p6gLApT7sd+jHi3OF71uw==} + dependencies: + '@walletconnect/jsonrpc-types': 1.0.3 + dev: false + + /@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 + dev: false + + /@walletconnect/logger@2.0.1: + resolution: {integrity: sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==} + dependencies: + pino: 7.11.0 + tslib: 1.14.1 + dev: false + + /@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 + dev: false + + /@walletconnect/relay-api@1.0.9: + resolution: {integrity: sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==} + dependencies: + '@walletconnect/jsonrpc-types': 1.0.3 + tslib: 1.14.1 + dev: false + + /@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 + dev: false + + /@walletconnect/safe-json@1.0.2: + resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} + dependencies: + tslib: 1.14.1 + dev: false + + /@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 + dev: false + + /@walletconnect/time@1.0.2: + resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} + dependencies: + tslib: 1.14.1 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@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 + dev: false + + /@walletconnect/window-getters@1.0.1: + resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} dependencies: - '@babel/parser': 7.18.4 - '@vue/compiler-core': 3.2.36 - '@vue/compiler-dom': 3.2.36 - '@vue/compiler-ssr': 3.2.36 - '@vue/reactivity-transform': 3.2.36 - '@vue/shared': 3.2.36 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.24 - source-map: 0.6.1 - dev: true + tslib: 1.14.1 + dev: false - /@vue/compiler-ssr@3.2.36: - resolution: {integrity: sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==} + /@walletconnect/window-metadata@1.0.1: + resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} dependencies: - '@vue/compiler-dom': 3.2.36 - '@vue/shared': 3.2.36 - dev: true + '@walletconnect/window-getters': 1.0.1 + tslib: 1.14.1 + dev: false - /@vue/reactivity-transform@3.2.36: - resolution: {integrity: sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==} + /@web3modal/core@2.4.3(react@18.2.0): + resolution: {integrity: sha512-7Z/sDe9RIYQ2k9ITcxgEa/u7FvlI76vcVVZn9UY4ISivefqrH4JAS3GX4JmVNUUlovwuiZdyqBv4llAQOMK6Rg==} 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 + buffer: 6.0.3 + valtio: 1.10.5(react@18.2.0) + transitivePeerDependencies: + - react + dev: false - /@vue/shared@3.2.36: - resolution: {integrity: sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==} - dev: true + /@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 + dev: false - /@wagmi/chains@0.2.16(typescript@4.9.3): - resolution: {integrity: sha512-rkWaI2PxCnbD8G07ZZff5QXftnSkYL0h5f4DkHCG3fGYYr/ZDvmCL4bMae7j7A9sAif1csPPBmbCzHp3R5ogCQ==} - peerDependencies: - typescript: '>=4.9.4' - peerDependenciesMeta: - typescript: - optional: true + /@web3modal/ui@2.4.3(react@18.2.0): + resolution: {integrity: sha512-J989p8CdtEhI9gZHf/rZ/WFqYlrAHWw9GmAhFoiNODwjAp0BoG/uoaPiijJMchXdngihZOjLGCQwDXU16DHiKg==} dependencies: - typescript: 4.9.3 - dev: true + '@web3modal/core': 2.4.3(react@18.2.0) + lit: 2.7.5 + motion: 10.16.2 + qrcode: 1.5.3 + transitivePeerDependencies: + - react + dev: false /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -3984,7 +5274,6 @@ packages: dependencies: jsonparse: 1.3.1 through: 2.3.8 - dev: true /abbrev@1.0.9: resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} @@ -3999,6 +5288,31 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true + /abitype@0.8.1(typescript@4.9.5): + resolution: {integrity: sha512-n8Di6AWb3i7HnEkBvecU6pG0a5nj5YwMvdAIwPLsQK95ulRy/XS113s/RXvSfTX1iOQJYFrEO3/q4SMWu7OwTA==} + peerDependencies: + typescript: '>=4.9.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.5 + dev: false + + /abitype@0.8.11(typescript@4.9.5)(zod@3.21.4): + resolution: {integrity: sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.5 + zod: 3.21.4 + dev: true + /abitype@0.8.2(typescript@4.9.3)(zod@3.20.2): resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} peerDependencies: @@ -4012,6 +5326,45 @@ packages: zod: 3.20.2 dev: true + /abitype@0.8.2(typescript@4.9.5): + resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.5 + dev: false + + /abitype@0.8.7(typescript@4.9.5)(zod@3.21.4): + resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.5 + zod: 3.21.4 + dev: true + + /abitype@0.9.0(typescript@4.9.5): + resolution: {integrity: sha512-6T0BC3Yo3pIZ1kABVRokXYZULob3lWEfcJosJsrCAxfKVeyXvUMGIeJADgwHioccz/mYFye2vR3eq0sNAtBk2w==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 4.9.5 + dev: true + /abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -4102,7 +5455,6 @@ packages: /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} - dev: true /acorn@6.4.2: resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} @@ -4114,7 +5466,6 @@ packages: resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} @@ -4135,8 +5486,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==} @@ -4155,7 +5504,6 @@ packages: humanize-ms: 1.2.1 transitivePeerDependencies: - supports-color - dev: true /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -4241,7 +5589,6 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true /ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} @@ -4263,12 +5610,10 @@ 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==} engines: {node: '>=12'} - dev: true /ansicolors@0.3.2: resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} @@ -4286,12 +5631,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: @@ -4537,6 +5878,12 @@ 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 + dev: false + /async@1.5.2: resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} dev: true @@ -4591,7 +5938,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==} @@ -5177,11 +6523,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==} @@ -5229,6 +6573,14 @@ 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 + dev: false + /bignumber.js@9.0.1: resolution: {integrity: sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==} @@ -5247,12 +6599,14 @@ packages: engines: {node: '>=8'} dev: true + /bind-decorator@1.0.11: + resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} + dev: false + /bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} dependencies: file-uri-to-path: 1.0.0 - dev: true - optional: true /bintrees@1.0.1: resolution: {integrity: sha512-tbaUB1QpTIj4cKY8c1rvNAvEQXA+ekzHmbe4jzNfW3QWsF9GnnP/BRWyl6/qqS53heoYJ93naaFcm/jooONH8g==} @@ -5276,6 +6630,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 @@ -5370,6 +6732,14 @@ packages: - supports-color dev: 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 + dev: false + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -5491,7 +6861,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==} @@ -5538,14 +6907,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==} @@ -5567,6 +6934,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.11): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.18.11 + load-tsconfig: 0.2.5 + dev: true + /byte-size@7.0.0: resolution: {integrity: sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==} engines: {node: '>=10'} @@ -5597,7 +6984,6 @@ packages: /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - dev: true /cacache@16.1.3: resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} @@ -5718,6 +7104,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'} @@ -5744,6 +7137,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 @@ -5831,6 +7232,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 @@ -5878,7 +7301,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 @@ -5980,6 +7403,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'} @@ -6020,7 +7450,6 @@ packages: dependencies: slice-ansi: 5.0.0 string-width: 5.1.2 - dev: true /cli-width@2.2.1: resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} @@ -6094,6 +7523,11 @@ packages: engines: {node: '>=0.8'} dev: true + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false + /cmd-shim@5.0.0: resolution: {integrity: sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -6217,6 +7651,11 @@ packages: 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'} @@ -6285,6 +7724,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'} @@ -6442,11 +7889,17 @@ packages: engines: {node: '>=0.10.0'} dev: true + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + /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 @@ -6568,12 +8021,20 @@ 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 + dev: false + /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -6676,6 +8137,11 @@ 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 + /dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true @@ -6926,6 +8392,11 @@ packages: slash: 3.0.0 dev: true + /delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + dev: false + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -6998,6 +8469,10 @@ 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==} + dev: false + /detect-indent@4.0.0: resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==} engines: {node: '>=0.10.0'} @@ -7022,6 +8497,13 @@ packages: dev: true optional: true + /detect-package-manager@2.0.1: + resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + /detect-port@1.3.0: resolution: {integrity: sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==} engines: {node: '>= 4.2.1'} @@ -7050,7 +8532,6 @@ packages: /diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} - dev: true /diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -7060,6 +8541,10 @@ packages: randombytes: 2.1.0 dev: true + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -7124,6 +8609,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'} @@ -7138,6 +8630,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'} @@ -7179,7 +8676,6 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true /ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} @@ -7190,6 +8686,17 @@ 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 + dev: false + /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} engines: {node: '>=0.10.0'} @@ -7226,11 +8733,9 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true /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==} @@ -7443,6 +8948,16 @@ packages: es6-symbol: 3.1.3 dev: true + /es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + dev: false + + /es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + dependencies: + es6-promise: 4.2.8 + dev: false + /es6-symbol@3.1.3: resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} dependencies: @@ -7450,6 +8965,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'} @@ -7459,6 +8983,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'} @@ -7468,6 +9001,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'} @@ -7477,6 +9019,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'} @@ -7486,6 +9037,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'} @@ -7495,6 +9055,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'} @@ -7504,6 +9073,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'} @@ -7513,6 +9091,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'} @@ -7522,6 +9109,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'} @@ -7531,6 +9127,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'} @@ -7540,6 +9145,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'} @@ -7549,6 +9163,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'} @@ -7558,6 +9181,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'} @@ -7567,6 +9199,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'} @@ -7576,6 +9217,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'} @@ -7585,6 +9235,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'} @@ -7594,6 +9253,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'} @@ -7603,6 +9271,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'} @@ -7612,6 +9289,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'} @@ -7621,6 +9307,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'} @@ -7630,6 +9325,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'} @@ -7688,6 +9413,35 @@ packages: '@esbuild/win32-arm64': 0.16.17 '@esbuild/win32-ia32': 0.16.17 '@esbuild/win32-x64': 0.16.17 + + /esbuild@0.18.11: + resolution: {integrity: sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.11 + '@esbuild/android-arm64': 0.18.11 + '@esbuild/android-x64': 0.18.11 + '@esbuild/darwin-arm64': 0.18.11 + '@esbuild/darwin-x64': 0.18.11 + '@esbuild/freebsd-arm64': 0.18.11 + '@esbuild/freebsd-x64': 0.18.11 + '@esbuild/linux-arm': 0.18.11 + '@esbuild/linux-arm64': 0.18.11 + '@esbuild/linux-ia32': 0.18.11 + '@esbuild/linux-loong64': 0.18.11 + '@esbuild/linux-mips64el': 0.18.11 + '@esbuild/linux-ppc64': 0.18.11 + '@esbuild/linux-riscv64': 0.18.11 + '@esbuild/linux-s390x': 0.18.11 + '@esbuild/linux-x64': 0.18.11 + '@esbuild/netbsd-x64': 0.18.11 + '@esbuild/openbsd-x64': 0.18.11 + '@esbuild/sunos-x64': 0.18.11 + '@esbuild/win32-arm64': 0.18.11 + '@esbuild/win32-ia32': 0.18.11 + '@esbuild/win32-x64': 0.18.11 dev: true /escalade@3.1.1: @@ -8180,6 +9934,18 @@ 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 + dev: false + /eth-ens-namehash@2.0.8: resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} dependencies: @@ -8213,6 +9979,17 @@ packages: sync-request: 6.1.0 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 + dev: false + /eth-json-rpc-infura@3.2.1: resolution: {integrity: sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==} dependencies: @@ -8272,7 +10049,12 @@ 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 + dev: false /eth-sig-util@1.4.2: resolution: {integrity: sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==} @@ -8642,6 +10424,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'} @@ -8668,12 +10487,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==} @@ -8724,6 +10541,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'} @@ -8902,6 +10734,11 @@ 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'} + dev: false + /fake-merkle-patricia-tree@1.0.1: resolution: {integrity: sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==} dependencies: @@ -8915,26 +10752,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==} @@ -8951,6 +10788,10 @@ packages: /fast-safe-stringify@2.0.8: resolution: {integrity: sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==} + /fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + dev: false + /fastify-warning@0.2.0: resolution: {integrity: sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==} deprecated: This module renamed to process-warning @@ -8967,6 +10808,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: @@ -9003,8 +10852,6 @@ packages: /file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: true - optional: true /file-url@3.0.0: resolution: {integrity: sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==} @@ -9033,6 +10880,11 @@ packages: dependencies: to-regex-range: 5.0.1 + /filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + dev: false + /finalhandler@1.1.2: resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} engines: {node: '>= 0.8'} @@ -9123,6 +10975,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: @@ -9206,7 +11066,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==} @@ -9277,6 +11136,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' @@ -9425,7 +11291,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind@1.1.1: @@ -9803,6 +11668,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==} @@ -9813,7 +11679,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==} @@ -9888,7 +11753,7 @@ packages: '@types/glob': 7.1.4 array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.0 glob: 7.2.3 ignore: 5.2.4 merge2: 1.4.1 @@ -9901,7 +11766,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 @@ -9912,7 +11777,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 @@ -10303,10 +12179,21 @@ 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==} + dev: false + /hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} dependencies: @@ -10459,11 +12346,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==} @@ -10492,7 +12383,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==} @@ -10740,7 +12630,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==} @@ -10915,7 +12804,6 @@ packages: /is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - dev: true /is-function@1.0.2: resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} @@ -10925,7 +12813,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -10946,6 +12833,11 @@ 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 @@ -11058,6 +12950,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'} @@ -11102,6 +12999,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 @@ -11162,13 +13064,20 @@ 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 + dev: false + /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==} @@ -11266,6 +13175,33 @@ 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 + dev: false + + /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 @@ -11367,6 +13303,14 @@ 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 + dev: false + /json-rpc-error@2.0.0: resolution: {integrity: sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==} dependencies: @@ -11375,7 +13319,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==} @@ -11431,7 +13374,6 @@ packages: /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true /jsonfile@2.4.0: resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} @@ -11459,7 +13401,6 @@ packages: /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - dev: true /jsonschema@1.4.0: resolution: {integrity: sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==} @@ -11498,7 +13439,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==} @@ -11506,6 +13446,10 @@ packages: json-buffer: 3.0.0 dev: true + /keyvaluestorage-interface@1.0.0: + resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + dev: false + /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -11877,6 +13821,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==} @@ -11930,6 +13879,28 @@ 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 + dev: false + + /lit-html@2.7.5: + resolution: {integrity: sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA==} + dependencies: + '@types/trusted-types': 2.0.3 + dev: false + + /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 + dev: false + /load-json-file@1.1.0: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} engines: {node: '>=0.10.0'} @@ -11961,6 +13932,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'} @@ -11974,7 +13950,6 @@ packages: /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} - dev: true /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} @@ -12004,6 +13979,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 @@ -12018,7 +14000,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==} @@ -12032,6 +14013,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 @@ -12069,6 +14054,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'} @@ -12096,13 +14089,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'} @@ -12142,7 +14140,6 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 - dev: true /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} @@ -12709,7 +14706,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: @@ -12758,6 +14755,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'} @@ -13011,7 +15013,6 @@ packages: pathe: 1.1.1 pkg-types: 1.0.3 ufo: 1.1.2 - dev: true /mnemonist@0.38.3: resolution: {integrity: sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==} @@ -13164,6 +15165,17 @@ 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 + dev: false + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -13207,6 +15219,10 @@ packages: varint: 5.0.2 dev: true + /multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + dev: false + /multihashes@0.4.21: resolution: {integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==} dependencies: @@ -13242,6 +15258,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 + /nan@2.17.0: resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} dev: true @@ -13273,7 +15297,6 @@ packages: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /nanomatch@1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} @@ -13328,6 +15351,13 @@ 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-abi@2.30.0: resolution: {integrity: sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==} dependencies: @@ -13337,7 +15367,6 @@ packages: /node-addon-api@2.0.2: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} - dev: true /node-addon-api@3.0.2: resolution: {integrity: sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg==} @@ -13348,6 +15377,11 @@ packages: 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: @@ -13367,6 +15401,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} @@ -13379,10 +15424,18 @@ packages: whatwg-url: 5.0.0 dev: true + /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==} @@ -13682,6 +15735,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@4.1.2: resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} dependencies: @@ -13840,7 +15900,7 @@ packages: tsconfig-paths: 4.2.0 tslib: 2.6.0 v8-compile-cache: 2.3.0 - yargs: 17.6.2 + yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: '@nrwl/nx-darwin-arm64': 15.9.4 @@ -13870,7 +15930,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 @@ -14020,6 +16080,10 @@ packages: http-https: 1.0.0 dev: true + /on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + dev: false + /on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -14057,6 +16121,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'} @@ -14122,6 +16193,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'} @@ -14187,7 +16273,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 - dev: true /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} @@ -14215,6 +16300,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'} @@ -14353,6 +16445,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'} @@ -14437,6 +16536,13 @@ packages: 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'} @@ -14487,6 +16593,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'} @@ -14503,6 +16616,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'} @@ -14520,6 +16638,11 @@ packages: engines: {node: '>=8'} dev: true + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -14564,7 +16687,6 @@ packages: /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -14585,12 +16707,6 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /picomatch@2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} - engines: {node: '>=8.6'} - dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -14604,7 +16720,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==} @@ -14613,7 +16728,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==} @@ -14627,6 +16741,13 @@ 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 + dev: false + /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 @@ -14652,6 +16773,10 @@ packages: resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==} dev: false + /pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + dev: false + /pino@6.13.1: resolution: {integrity: sha512-QQf67BU+cANnc/2U+wzUV20UjO5oBryWpnNyKshdLfT9BdeiXlh9wxLGmOjAuBWMYITdMs+BtJSQQNlGRNbWpA==} hasBin: true @@ -14665,6 +16790,28 @@ 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 + dev: false + + /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'} @@ -14677,7 +16824,6 @@ packages: jsonc-parser: 3.2.0 mlly: 1.4.0 pathe: 1.1.1 - dev: true /please-upgrade-node@3.2.0: resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} @@ -14690,11 +16836,33 @@ packages: engines: {node: '>=4'} dev: true + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: false + /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(ts-node@10.9.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 + ts-node: 10.9.1(@types/node@12.20.55)(typescript@4.9.5) + yaml: 2.3.1 + dev: true + /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} @@ -14710,13 +16878,16 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /postinstall-postinstall@2.1.0: resolution: {integrity: sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==} requiresBuild: true dev: true + /preact@10.16.0: + resolution: {integrity: sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==} + dev: false + /prebuild-install@5.3.6: resolution: {integrity: sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==} engines: {node: '>=6'} @@ -14862,7 +17033,6 @@ 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==} @@ -14905,6 +17075,10 @@ packages: fromentries: 1.3.2 dev: true + /process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + dev: false + /process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -14988,6 +17162,10 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 + /proxy-compare@2.5.1: + resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} + dev: false + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true @@ -15086,6 +17264,17 @@ 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 + dev: false + /qs@6.10.3: resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} engines: {node: '>=0.6'} @@ -15105,7 +17294,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==} @@ -15131,6 +17319,26 @@ 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 + dev: false + + /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 + dev: false + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -15204,12 +17412,18 @@ packages: /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 + dev: false + /read-cmd-shim@3.0.0: resolution: {integrity: sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -15343,18 +17557,6 @@ packages: string_decoder: 0.10.31 dev: true - /readable-stream@2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: true - /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: @@ -15403,9 +17605,14 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true + /real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + dev: false + /rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} @@ -15758,6 +17965,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: @@ -15826,7 +18041,18 @@ packages: 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.12.0(bufferutil@4.0.3)(utf-8-validate@5.0.5) + optionalDependencies: + bufferutil: 4.0.3 + utf-8-validate: 5.0.5 + dev: false /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -15847,7 +18073,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==} @@ -15878,6 +18103,10 @@ packages: events: 3.3.0 dev: true + /safe-json-utils@1.1.1: + resolution: {integrity: sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==} + dev: false + /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: @@ -15897,6 +18126,11 @@ packages: regexp-tree: 0.1.24 dev: true + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -16016,7 +18250,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /send@0.17.1: resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==} @@ -16060,6 +18293,14 @@ packages: - supports-color dev: 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: @@ -16148,7 +18389,6 @@ packages: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 - dev: true /sha1@1.1.1: resolution: {integrity: sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==} @@ -16213,7 +18453,6 @@ packages: /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -16307,7 +18546,6 @@ packages: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} @@ -16327,6 +18565,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'} @@ -16457,7 +18702,7 @@ packages: cosmiconfig: 5.2.1 eslint: 5.16.0 fast-diff: 1.2.0 - glob: 7.2.0 + glob: 7.2.3 ignore: 4.0.6 js-yaml: 3.14.1 lodash: 4.17.21 @@ -16539,6 +18784,12 @@ 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 + dev: false + /sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} @@ -16549,7 +18800,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map-resolve@0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} @@ -16604,6 +18854,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 @@ -16646,6 +18903,11 @@ 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'} + dev: false + /split-string@3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} @@ -16658,6 +18920,11 @@ packages: dependencies: readable-stream: 3.6.2 + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: false + /split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} dependencies: @@ -16698,7 +18965,6 @@ packages: /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true /stacktrace-parser@0.1.10: resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} @@ -16726,12 +18992,25 @@ packages: /std-env@3.3.3: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} + + /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'} + /stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + /stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: false @@ -16753,6 +19032,11 @@ 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'} + dev: false + /string-argv@0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} @@ -16803,7 +19087,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true /string.prototype.matchall@4.0.5: resolution: {integrity: sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==} @@ -16896,7 +19179,6 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: true /strip-bom@2.0.0: resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} @@ -16923,6 +19205,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'} @@ -16954,7 +19241,6 @@ packages: resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} dependencies: acorn: 8.9.0 - dev: true /strong-log-transformer@2.1.0: resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} @@ -16966,6 +19252,20 @@ packages: through: 2.3.8 dev: true + /sucrase@3.32.0: + resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} + 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'} @@ -16979,13 +19279,22 @@ packages: formidable: 1.2.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.11.0 + qs: 6.11.2 readable-stream: 3.6.2 semver: 7.5.3 transitivePeerDependencies: - supports-color dev: true + /superstruct@0.14.2: + resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==} + dev: false + + /superstruct@1.0.3: + resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==} + engines: {node: '>=14.0.0'} + dev: false + /supertest@6.1.6: resolution: {integrity: sha512-0hACYGNJ8OHRg8CRITeZOdbjur7NLuNs0mBjVhdpxi7hP6t3QIbOzLON5RTUmZcy2I9riuII3+Pr2C7yztrIIg==} engines: {node: '>=6.0.0'} @@ -17231,6 +19540,10 @@ 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==} + dev: false + /text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -17257,10 +19570,29 @@ packages: qs: 6.11.2 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 + dev: false + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: - readable-stream: 2.3.7 + readable-stream: 2.3.8 xtend: 4.0.2 dev: true @@ -17279,7 +19611,6 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true /timed-out@4.0.1: resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} @@ -17287,17 +19618,14 @@ packages: /tinybench@2.3.1: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} - dev: true /tinypool@0.3.1: resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} 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 /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} @@ -17365,6 +19693,10 @@ packages: safe-regex: 1.1.0 dev: true + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + /toidentifier@1.0.0: resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} engines: {node: '>=0.6'} @@ -17383,12 +19715,22 @@ packages: /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 /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'} @@ -17468,6 +19810,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'} @@ -17654,12 +20000,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(ts-node@10.9.1)(typescript@4.9.5): + 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.11) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4(supports-color@8.1.1) + esbuild: 0.18.11 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.1(ts-node@10.9.1) + resolve-from: 5.0.0 + rollup: 3.25.1 + source-map: 0.8.0-beta.0 + sucrase: 3.32.0 + tree-kill: 1.2.2 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsutils@3.21.0(typescript@4.9.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -17670,6 +20051,16 @@ packages: typescript: 4.9.3 dev: true + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + dev: true + /tsx@3.12.7: resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} hasBin: true @@ -17692,7 +20083,7 @@ packages: smartwrap: 2.0.2 strip-ansi: 6.0.1 wcwidth: 1.0.1 - yargs: 17.6.2 + yargs: 17.7.2 dev: false /tuf-js@1.1.7: @@ -17862,7 +20253,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==} @@ -17875,7 +20265,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 @@ -17892,7 +20282,6 @@ packages: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /typewise-core@1.2.0: resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==} @@ -17932,7 +20321,6 @@ packages: /ufo@1.1.2: resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} - dev: true /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} @@ -17942,6 +20330,12 @@ packages: dev: true optional: true + /uint8arrays@3.1.1: + resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} + dependencies: + multiformats: 9.9.0 + dev: false + /ultron@1.1.1: resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} dev: true @@ -18097,6 +20491,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: @@ -18155,6 +20561,14 @@ packages: dev: true optional: 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 + dev: false + /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -18165,7 +20579,6 @@ packages: requiresBuild: true dependencies: node-gyp-build: 4.6.0 - dev: true /utf8@3.0.0: resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} @@ -18194,7 +20607,6 @@ packages: is-typed-array: 1.1.10 safe-buffer: 5.2.1 which-typed-array: 1.1.9 - dev: true /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} @@ -18219,7 +20631,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==} @@ -18255,6 +20666,20 @@ 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) + dev: false + /varint@5.0.2: resolution: {integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==} dev: true @@ -18306,7 +20731,50 @@ packages: - zod dev: true - /vite-node@0.28.3(@types/node@17.0.21): + /viem@0.3.30(typescript@4.9.5): + resolution: {integrity: sha512-4jokEVR2vtDl6zSpZiPUaHviK2dzW6uxCAVUArlh0Jhrc4ms0dkhn5E4iwk1CWMto8+YeLFEgY4gr9P10ryoEQ==} + 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': 0.2.16(typescript@4.9.5) + abitype: 0.8.2(typescript@4.9.5) + isomorphic-ws: 5.0.0(ws@8.12.0) + ws: 8.12.0 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + dev: false + + /viem@1.2.13(typescript@4.9.5)(zod@3.21.4): + resolution: {integrity: sha512-BhBbL/JieVZvM1hiSvzoQCsj96j7HoOx/apvl4YYIR/0m/tue4JK/a03P1GKPJ9S316HEB/bT6AIJMlXS/SyiQ==} + 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.2.0(typescript@4.9.5) + abitype: 0.8.11(typescript@4.9.5)(zod@3.21.4) + isomorphic-ws: 5.0.0(ws@8.12.0) + typescript: 4.9.5 + ws: 8.12.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + dev: true + + /vite-node@0.28.3(@types/node@12.20.55): resolution: {integrity: sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg==} engines: {node: '>=v14.16.0'} hasBin: true @@ -18318,7 +20786,7 @@ 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.0.4(@types/node@12.20.55) transitivePeerDependencies: - '@types/node' - less @@ -18327,9 +20795,8 @@ packages: - sugarss - supports-color - terser - dev: true - /vite@4.0.4(@types/node@17.0.21): + /vite@4.0.4(@types/node@12.20.55): resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -18354,14 +20821,13 @@ packages: terser: optional: true dependencies: - '@types/node': 17.0.21 + '@types/node': 12.20.55 esbuild: 0.16.17 postcss: 8.4.24 resolve: 1.22.2 rollup: 3.25.1 optionalDependencies: fsevents: 2.3.2 - dev: true /vitest@0.28.3: resolution: {integrity: sha512-N41VPNf3VGJlWQizGvl1P5MGyv3ZZA2Zvh+2V8L6tYBAAuqqDK4zExunT1Cdb6dGfZ4gr+IMrnG8d4Z6j9ctPw==} @@ -18387,7 +20853,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 17.0.21 + '@types/node': 12.20.55 '@vitest/expect': 0.28.3 '@vitest/runner': 0.28.3 '@vitest/spy': 0.28.3 @@ -18406,8 +20872,8 @@ packages: tinybench: 2.3.1 tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.0.4(@types/node@17.0.21) - vite-node: 0.28.3(@types/node@17.0.21) + vite: 4.0.4(@types/node@12.20.55) + vite-node: 0.28.3(@types/node@12.20.55) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -18416,7 +20882,6 @@ packages: - sugarss - supports-color - terser - dev: true /vscode-oniguruma@1.6.2: resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} @@ -18426,6 +20891,39 @@ packages: resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} dev: true + /wagmi@1.0.1(react@18.2.0)(typescript@4.9.5)(viem@0.3.30): + resolution: {integrity: sha512-+2UkZG9eA3tKqXj1wvlvI8mL0Bcff7Tf5CKfUOyQsdKcY+J5rfwYYya25G+jja57umpHFtfxRaL7xDkNjehrRg==} + peerDependencies: + react: '>=17.0.0' + typescript: '>=4.9.4' + viem: ~0.3.18 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@tanstack/query-sync-storage-persister': 4.29.19 + '@tanstack/react-query': 4.29.19(react@18.2.0) + '@tanstack/react-query-persist-client': 4.29.19(@tanstack/react-query@4.29.19) + '@wagmi/core': 1.0.1(react@18.2.0)(typescript@4.9.5)(viem@0.3.30) + abitype: 0.8.1(typescript@4.9.5) + react: 18.2.0 + typescript: 4.9.5 + use-sync-external-store: 1.2.0(react@18.2.0) + viem: 0.3.30(typescript@4.9.5) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - immer + - lokijs + - react-dom + - react-native + - supports-color + - utf-8-validate + - zod + dev: false + /walk-up-path@1.0.0: resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} dev: true @@ -18435,6 +20933,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'} @@ -19015,6 +21518,9 @@ 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 /websocket@1.0.32: @@ -19058,6 +21564,13 @@ packages: 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: @@ -19133,7 +21646,6 @@ packages: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - dev: true /wide-align@1.1.3: resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} @@ -19341,7 +21853,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /ws@8.12.0: resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} @@ -19354,7 +21865,22 @@ packages: optional: true utf-8-validate: optional: true - dev: true + + /ws@8.12.0(bufferutil@4.0.3)(utf-8-validate@5.0.5): + resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} + 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 + dev: false /xhr-request-promise@0.1.3: resolution: {integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==} @@ -19428,13 +21954,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@13.1.2: resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} dependencies: @@ -19544,6 +22074,19 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 /yargs@4.8.1: resolution: {integrity: sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==} @@ -19580,7 +22123,6 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - dev: true /zksync-web3@0.4.0(ethers@5.7.1): resolution: {integrity: sha512-LmrjkQlg2YSR+P0J1NQKtkraCN2ESKfVoMxole3NxesrASQTsk6fR5+ph/8Vucq/Xh8EoAafp07+Q6TavP/TTw==} @@ -19594,6 +22136,26 @@ packages: resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==} dev: true + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: true + + /zustand@4.3.9(react@18.2.0): + resolution: {integrity: sha512-Tat5r8jOMG1Vcsj8uldMyqYKC5IZvQif8zetmLHs9WoZlntTHmIoNM8TpLRY31ExncuUvUOXehd0kvahkuHjDw==} + 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) + dev: false + /zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} dev: true